A veces, es posible que desee almacenar datos en una estructura de datos flexible. Los objetos JavaScript son una forma de manejar datos flexibles. Puede almacenar cadenas, números, valores booleanos, funciones y objetos y cualquier combinación de estos valores.
Este es un ejemplo de una estructura de datos compleja:
var ourMusic = [
{
"artist": "Daft Punk",
"title": "Homework",
"release_year": 1997,
" format ": [
"CD",
"Cassette",
"LP"
],
"gold": verdadero
}
];
Se trata de una serie de objetos, y los objetos tienen información detallada sobre el álbum. También tiene una formats
matriz anidada . Se pueden agregar registros de álbumes adicionales al nivel superior de la matriz.
El objeto almacena datos en forma de par clave-valor. En el ejemplo anterior, "artist": "Daft Punk"
es un atributo con una "artist"
clave y un "Daft Punk"
valor.
Notación de objetos JavaScript Acrónimo JSON
para almacenar datos relacionados con el formato de intercambio de datos.
{
"artist": "Daft Punk",
"title": "Homework",
"release_year": 1997 , "format
": [
"CD",
"Cassette",
"LP"
],
"gold": true
}
Sugerencias Cuando
hay varios objetos JSON en la matriz, sepárelos con comas.
Agregue un nuevo álbum al myMusic
objeto JSON. Añadir artist
y title
cadena, release_year
número y formats
matriz de cadenas.
// 初始化变量
var collection = {
"2548": {
"album": "Slippery When Wet",
"artist": "Bon Jovi",
"tracks": [
"Let It Rock",
"You Give Love a Bad Name"
]
},
"2468": {
"album": "1999",
"artist": "Prince",
"tracks": [
"1999",
"Little Red Corvette"
]
},
"1245": {
"artist": "Robert Palmer",
"tracks": [ ]
},
"5439": {
"album": "ABBA Gold"
}
};
// 复制 collection 以便测试
var collectionCopy = JSON.parse(JSON.stringify(collection));
// 请把你的代码写在这条注释以下
function updateRecords(id, prop, value) {
if (prop !== 'tracks' && value !== "") {
collection[id][prop] = value;
} else if (prop === "tracks" && !collection[id].hasOwnProperty("tracks")) {
collection[id][prop] = [value];
} else if (prop === "tracks" && value !== "") {
collection[id][prop].push(value);
} else if (value === "") {
delete collection[id][prop];
}
return collection;
}
// 你可以修改这一行来测试你的代码
updateRecords(5439, "artist", "ABBA");