freeCodeCamp/curriculum/challenges/spanish/02-javascript-algorithms-an.../basic-javascript/manipulating-complex-object...

5.5 KiB

id title localeTitle challengeType
56533eb9ac21ba0edf2244cb Manipulating Complex Objects Manipulando objetos complejos 1

Description

A veces es posible que desee almacenar datos en una estructura de datos flexible. Un objeto JavaScript es una forma de manejar datos flexibles. Permiten combinaciones arbitrarias de cadenas , números , booleanos , matrices , funciones y objetos . Aquí hay un ejemplo de una estructura de datos compleja:
var ourMusic = [
  {
    "artist": "Daft Punk",
    "title": "Homework",
    "release_year": 1997,
    "formats": [
      "CD",
      "Cassette",
      "LP"
    ],
    "gold": true
  }
];
Esta es una matriz que contiene un objeto dentro. El objeto tiene varias piezas de metadatos sobre un álbum. También tiene una matriz de "formats" anidados. Si desea agregar más registros de álbum, puede hacerlo agregando registros a la matriz de nivel superior. objetos contienen datos en una propiedad, que tiene un formato de clave-valor. En el ejemplo anterior, "artist": "Daft Punk" es una propiedad que tiene una clave de "artist" y un valor de "Daft Punk" . JavaScript Object Notation o JSON es un formato de intercambio de datos relacionado que se utiliza para almacenar datos.
{
  "artist": "Daft Punk",
  "title": "Homework",
  "release_year": 1997,
  "formats": [
    "CD",
    "Cassette",
    "LP"
  ],
  "gold": true
}
Nota
Deberá colocar una coma después de cada objeto de la matriz, a menos que sea el último objeto de la matriz.

Instructions

Agrega un nuevo álbum a la matriz myMusic . Agregue cadenas de artist y title , número de año de release_year y una matriz de formats de cadenas.

Tests

tests:
  - text: <code>myMusic</code> debería ser una matriz
    testString: 'assert(Array.isArray(myMusic), "<code>myMusic</code> should be an array");'
  - text: <code>myMusic</code> debería tener al menos dos elementos
    testString: 'assert(myMusic.length > 1, "<code>myMusic</code> should have at least two elements");'
  - text: ' <code>myMusic[1]</code> debería ser un objeto'
    testString: 'assert(typeof myMusic[1] === "object", "<code>myMusic[1]</code> should be an object");'
  - text: ' <code>myMusic[1]</code> debería tener al menos 4 propiedades'
    testString: 'assert(Object.keys(myMusic[1]).length > 3, "<code>myMusic[1]</code> should have at least 4 properties");'
  - text: ' <code>myMusic[1]</code> debe contener una propiedad de <code>artist</code> que es una cadena'
    testString: 'assert(myMusic[1].hasOwnProperty("artist") && typeof myMusic[1].artist === "string", "<code>myMusic[1]</code> should contain an <code>artist</code> property which is a string");'
  - text: ' <code>myMusic[1]</code> debe contener una propiedad de <code>title</code> que es una cadena'
    testString: 'assert(myMusic[1].hasOwnProperty("title") && typeof myMusic[1].title === "string", "<code>myMusic[1]</code> should  contain a <code>title</code> property which is a string");'
  - text: ' <code>myMusic[1]</code> debe contener una propiedad <code>release_year</code> que es un número'
    testString: 'assert(myMusic[1].hasOwnProperty("release_year") && typeof myMusic[1].release_year === "number", "<code>myMusic[1]</code> should contain a <code>release_year</code> property which is a number");'
  - text: ' <code>myMusic[1]</code> debe contener una propiedad de <code>formats</code> que es una matriz'
    testString: 'assert(myMusic[1].hasOwnProperty("formats") && Array.isArray(myMusic[1].formats), "<code>myMusic[1]</code> should contain a <code>formats</code> property which is an array");'
  - text: <code>formats</code> deben ser una matriz de cadenas con al menos dos elementos.
    testString: 'assert(myMusic[1].formats.every(function(item) { return (typeof item === "string")}) && myMusic[1].formats.length > 1, "<code>formats</code> should be an array of strings with at least two elements");'

Challenge Seed

var myMusic = [
  {
    "artist": "Billy Joel",
    "title": "Piano Man",
    "release_year": 1973,
    "formats": [
      "CD",
      "8T",
      "LP"
    ],
    "gold": true
  }
  // Add record here
];

After Test

console.info('after the test');

Solution

var myMusic = [
  {
    "artist": "Billy Joel",
    "title": "Piano Man",
    "release_year": 1973,
    "formats": [
      "CS",
      "8T",
      "LP" ],
    "gold": true
  },
  {
    "artist": "ABBA",
    "title": "Ring Ring",
    "release_year": 1973,
    "formats": [
      "CS",
      "8T",
      "LP",
    "CD",
  ]
  }
];