Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprende Desafío: Ordenar y Extraer Datos con sort() | Métodos Avanzados de Arreglos y Transformaciones
Estructuras de Datos en JavaScript

bookDesafío: Ordenar y Extraer Datos con sort()

Tarea

Dado un arreglo de libros, cada uno representado por un objeto con las propiedades (title, author, publicationYear), crear una solución que realice las siguientes tareas:

  1. Ordenar el arreglo de libros:
    • Ordenar por título en orden ascendente;
    • Ordenar por autor en orden descendente;
    • Ordenar por año en orden descendente.
  2. Extraer propiedades específicas en arreglos separados:
    • Crear un arreglo que contenga únicamente los títulos de los libros (ordenados por título en orden ascendente);
    • Crear un arreglo que contenga únicamente los autores de los libros (ordenados por autor en orden descendente);
    • Crear un arreglo que contenga únicamente los años de publicación de los libros (ordenados por año en orden descendente).

Asegurarse de que el arreglo original de libros permanezca sin modificaciones.

123456789101112131415161718192021222324252627282930313233343536
const books = [ { title: "Noughts & Crosses", author: "Malorie Blackman", publicationYear: 2001, }, { title: "Priestdaddy", author: "Patricia Lockwood", publicationYear: 2017, }, { title: "The Cost of Living", author: "Deborah Levy", publicationYear: 2018, }, ]; // Sort by `title` in ascending order const sortedByTitleAscending = ___ .sort((a, b) => a.title.___(b.title)) .___((book) => book.title); // Sort by `author` in descending order const sortedByAuthorDescending = [...books] .___((a, b) => b.___.localeCompare(a.___)) .map((book) => book.author); // Sort by `year` in descending order const sortedByYearDescending = [...books] .sort((a, b) => ___ ___ ___) .___((book) => book.publicationYear); console.log("Sorted by Title (Ascending):", sortedByTitleAscending); console.log("Sorted by Author (Descending):", sortedByAuthorDescending); console.log("Sorted by Year (Descending):", sortedByYearDescending);
copy

Salida esperada:

Sorted by Title (Ascending): Noughts & Crosses, Priestdaddy, The Cost of Living
Sorted by Author (Descending): Patricia Lockwood, Malorie Blackman, Deborah Levy
Sorted by Year (Descending): 2018, 2017, 2001
  1. Para ordenar por título, utilizar localeCompare() con la propiedad title.
  2. Para ordenar por autor, aplicar localeCompare() con la propiedad author.
  3. Para ordenar por año, emplear una comparación numérica basada en la propiedad publicationYear.
  4. Utilizar el método map() para crear nuevos arreglos con propiedades específicas.
  5. Crear una función de devolución de llamada para map() que retorne la propiedad deseada de cada libro.
  6. Para extraer títulos, autores y años, las funciones de devolución de llamada deben retornar las propiedades titleauthor y publicationYear, respectivamente.
  7. Asegurarse de que el arreglo original de libros permanezca sin modificaciones. Utilizar la sintaxis de propagación ([...books]) para crear una copia al ordenar y extraer.
123456789101112131415161718192021222324252627282930313233343536
const books = [ { title: "Noughts & Crosses", author: "Malorie Blackman", publicationYear: 2001, }, { title: "Priestdaddy", author: "Patricia Lockwood", publicationYear: 2017, }, { title: "The Cost of Living", author: "Deborah Levy", publicationYear: 2018, }, ]; // Sort by `title` in ascending order const sortedByTitleAscending = [...books] .sort((a, b) => a.title.localeCompare(b.title)) .map((book) => book.title); // Sort by `author` in descending order const sortedByAuthorDescending = [...books] .sort((a, b) => b.author.localeCompare(a.author)) .map((book) => book.author); // Sort by `year` in descending order const sortedByYearDescending = [...books] .sort((a, b) => b.publicationYear - a.publicationYear) .map((book) => book.publicationYear); console.log("Sorted by Title (Ascending):", sortedByTitleAscending); console.log("Sorted by Author (Descending):", sortedByAuthorDescending); console.log("Sorted by Year (Descending):", sortedByYearDescending);
copy

¿Todo estuvo claro?

¿Cómo podemos mejorarlo?

¡Gracias por tus comentarios!

Sección 5. Capítulo 8

Pregunte a AI

expand

Pregunte a AI

ChatGPT

Pregunte lo que quiera o pruebe una de las preguntas sugeridas para comenzar nuestra charla

Awesome!

Completion rate improved to 2.27

bookDesafío: Ordenar y Extraer Datos con sort()

Desliza para mostrar el menú

Tarea

Dado un arreglo de libros, cada uno representado por un objeto con las propiedades (title, author, publicationYear), crear una solución que realice las siguientes tareas:

  1. Ordenar el arreglo de libros:
    • Ordenar por título en orden ascendente;
    • Ordenar por autor en orden descendente;
    • Ordenar por año en orden descendente.
  2. Extraer propiedades específicas en arreglos separados:
    • Crear un arreglo que contenga únicamente los títulos de los libros (ordenados por título en orden ascendente);
    • Crear un arreglo que contenga únicamente los autores de los libros (ordenados por autor en orden descendente);
    • Crear un arreglo que contenga únicamente los años de publicación de los libros (ordenados por año en orden descendente).

Asegurarse de que el arreglo original de libros permanezca sin modificaciones.

123456789101112131415161718192021222324252627282930313233343536
const books = [ { title: "Noughts & Crosses", author: "Malorie Blackman", publicationYear: 2001, }, { title: "Priestdaddy", author: "Patricia Lockwood", publicationYear: 2017, }, { title: "The Cost of Living", author: "Deborah Levy", publicationYear: 2018, }, ]; // Sort by `title` in ascending order const sortedByTitleAscending = ___ .sort((a, b) => a.title.___(b.title)) .___((book) => book.title); // Sort by `author` in descending order const sortedByAuthorDescending = [...books] .___((a, b) => b.___.localeCompare(a.___)) .map((book) => book.author); // Sort by `year` in descending order const sortedByYearDescending = [...books] .sort((a, b) => ___ ___ ___) .___((book) => book.publicationYear); console.log("Sorted by Title (Ascending):", sortedByTitleAscending); console.log("Sorted by Author (Descending):", sortedByAuthorDescending); console.log("Sorted by Year (Descending):", sortedByYearDescending);
copy

Salida esperada:

Sorted by Title (Ascending): Noughts & Crosses, Priestdaddy, The Cost of Living
Sorted by Author (Descending): Patricia Lockwood, Malorie Blackman, Deborah Levy
Sorted by Year (Descending): 2018, 2017, 2001
  1. Para ordenar por título, utilizar localeCompare() con la propiedad title.
  2. Para ordenar por autor, aplicar localeCompare() con la propiedad author.
  3. Para ordenar por año, emplear una comparación numérica basada en la propiedad publicationYear.
  4. Utilizar el método map() para crear nuevos arreglos con propiedades específicas.
  5. Crear una función de devolución de llamada para map() que retorne la propiedad deseada de cada libro.
  6. Para extraer títulos, autores y años, las funciones de devolución de llamada deben retornar las propiedades titleauthor y publicationYear, respectivamente.
  7. Asegurarse de que el arreglo original de libros permanezca sin modificaciones. Utilizar la sintaxis de propagación ([...books]) para crear una copia al ordenar y extraer.
123456789101112131415161718192021222324252627282930313233343536
const books = [ { title: "Noughts & Crosses", author: "Malorie Blackman", publicationYear: 2001, }, { title: "Priestdaddy", author: "Patricia Lockwood", publicationYear: 2017, }, { title: "The Cost of Living", author: "Deborah Levy", publicationYear: 2018, }, ]; // Sort by `title` in ascending order const sortedByTitleAscending = [...books] .sort((a, b) => a.title.localeCompare(b.title)) .map((book) => book.title); // Sort by `author` in descending order const sortedByAuthorDescending = [...books] .sort((a, b) => b.author.localeCompare(a.author)) .map((book) => book.author); // Sort by `year` in descending order const sortedByYearDescending = [...books] .sort((a, b) => b.publicationYear - a.publicationYear) .map((book) => book.publicationYear); console.log("Sorted by Title (Ascending):", sortedByTitleAscending); console.log("Sorted by Author (Descending):", sortedByAuthorDescending); console.log("Sorted by Year (Descending):", sortedByYearDescending);
copy

¿Todo estuvo claro?

¿Cómo podemos mejorarlo?

¡Gracias por tus comentarios!

Sección 5. Capítulo 8
some-alt