Desafí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:
- 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.
- 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.
123456789101112131415161718192021222324252627282930313233343536const 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);
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
- Para ordenar por título, utilizar
localeCompare()con la propiedadtitle. - Para ordenar por autor, aplicar
localeCompare()con la propiedadauthor. - Para ordenar por año, emplear una comparación numérica basada en la propiedad
publicationYear. - Utilizar el método
map()para crear nuevos arreglos con propiedades específicas. - Crear una función de devolución de llamada para
map()que retorne la propiedad deseada de cada libro. - Para extraer títulos, autores y años, las funciones de devolución de llamada deben retornar las propiedades
title,authorypublicationYear, respectivamente. - 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.
123456789101112131415161718192021222324252627282930313233343536const 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);
¿Todo estuvo claro?
¡Gracias por tus comentarios!
Sección 5. Capítulo 8
Pregunte a AI
Pregunte a AI
Pregunte lo que quiera o pruebe una de las preguntas sugeridas para comenzar nuestra charla
Awesome!
Completion rate improved to 2.27
Desafí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:
- 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.
- 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.
123456789101112131415161718192021222324252627282930313233343536const 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);
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
- Para ordenar por título, utilizar
localeCompare()con la propiedadtitle. - Para ordenar por autor, aplicar
localeCompare()con la propiedadauthor. - Para ordenar por año, emplear una comparación numérica basada en la propiedad
publicationYear. - Utilizar el método
map()para crear nuevos arreglos con propiedades específicas. - Crear una función de devolución de llamada para
map()que retorne la propiedad deseada de cada libro. - Para extraer títulos, autores y años, las funciones de devolución de llamada deben retornar las propiedades
title,authorypublicationYear, respectivamente. - 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.
123456789101112131415161718192021222324252627282930313233343536const 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);
¿Todo estuvo claro?
¡Gracias por tus comentarios!
Sección 5. Capítulo 8