Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Desafío: Ordenar y Extraer Propiedades | Advanced Array Operations
course content

Contenido del Curso

JavaScript Data Structures

JavaScript Data Structures

Desafío: Ordenar y Extraer PropiedadesDesafío: Ordenar y Extraer Propiedades

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

  1. Ordenar el array 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 matrices separadas:
    • Crear una matriz que contenga sólo los títulos de los libros (ordenados por título en orden ascendente).
    • Crear una matriz que contenga sólo los autores de los libros (ordenados por autor en orden descendente).
    • Crear una matriz que contenga sólo los años de publicación de los libros (ordenados por año en orden descendente).

Asegúrese de que la matriz original de libros permanece inalterada.

Salida esperada:

1. For sorting by title, utilize localeCompare() with the title property.
2. For sorting by author, apply localeCompare() with the author property.
3. For sorting by year, use a numeric comparison based on the publicationYear property.
4. Utilize the map() method to create new arrays with specific properties.
5. Create a callback function for map() that returns the desired property for each book.
6. For extracting titles, authors, and years, the callback functions should return the title, author, and publicationYear properties, respectively.
7. Ensure that the original array of books remains unaltered. Use the spread ([...books]) syntax to create a copy for sorting and extracting.

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);
      
  1. Para ordenar por título, utilice localeCompare() con la propiedad title.
  2. Para ordenar por autor, aplique localeCompare() con la propiedad author.
  3. Para ordenar por año, use una comparación numérica basada en la propiedad publicationYear.
  4. Utilice el método map() para crear nuevos arreglos con propiedades específicas.
  5. Cree una función de callback para map() que devuelva la propiedad deseada para cada libro.
  6. Para extraer títulos, autores y años, las funciones de callback deben devolver las propiedades title, author y publicationYear, respectivamente.
  7. Asegúrese de que el arreglo original de libros permanezca sin cambios. Utilice la sintaxis de propagación ([...books]) para crear una copia para ordenar y extraer.

¿Todo estuvo claro?

Sección 5. Capítulo 8
course content

Contenido del Curso

JavaScript Data Structures

JavaScript Data Structures

Desafío: Ordenar y Extraer PropiedadesDesafío: Ordenar y Extraer Propiedades

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

  1. Ordenar el array 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 matrices separadas:
    • Crear una matriz que contenga sólo los títulos de los libros (ordenados por título en orden ascendente).
    • Crear una matriz que contenga sólo los autores de los libros (ordenados por autor en orden descendente).
    • Crear una matriz que contenga sólo los años de publicación de los libros (ordenados por año en orden descendente).

Asegúrese de que la matriz original de libros permanece inalterada.

Salida esperada:

1. For sorting by title, utilize localeCompare() with the title property.
2. For sorting by author, apply localeCompare() with the author property.
3. For sorting by year, use a numeric comparison based on the publicationYear property.
4. Utilize the map() method to create new arrays with specific properties.
5. Create a callback function for map() that returns the desired property for each book.
6. For extracting titles, authors, and years, the callback functions should return the title, author, and publicationYear properties, respectively.
7. Ensure that the original array of books remains unaltered. Use the spread ([...books]) syntax to create a copy for sorting and extracting.

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);
      
  1. Para ordenar por título, utilice localeCompare() con la propiedad title.
  2. Para ordenar por autor, aplique localeCompare() con la propiedad author.
  3. Para ordenar por año, use una comparación numérica basada en la propiedad publicationYear.
  4. Utilice el método map() para crear nuevos arreglos con propiedades específicas.
  5. Cree una función de callback para map() que devuelva la propiedad deseada para cada libro.
  6. Para extraer títulos, autores y años, las funciones de callback deben devolver las propiedades title, author y publicationYear, respectivamente.
  7. Asegúrese de que el arreglo original de libros permanezca sin cambios. Utilice la sintaxis de propagación ([...books]) para crear una copia para ordenar y extraer.

¿Todo estuvo claro?

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