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

5.0 KiB

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

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 = [
{
"artista": "Daft Punk",
"título": "tarea",
"release_year": 1997,
"formatos": [
"DISCOS COMPACTOS",
"Casete",
"LP"
]
"oro": cierto
}
];
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. Los 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" . La notación de objetos de JavaScript o JSON es un formato de intercambio de datos relacionado que se utiliza para almacenar datos.
{
"artista": "Daft Punk",
"título": "tarea",
"release_year": 1997,
"formatos": [
"DISCOS COMPACTOS",
"Casete",
"LP"
]
"oro": cierto
}
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> debe ser un objeto'
    testString: 'assert(typeof myMusic[1] === "object", "<code>myMusic[1]</code> should be an object");'
  - text: '<code>myMusic[1]</code> debe 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

// solution required