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"
}
};
var collectionCopy = JSON.parse(JSON.stringify(collection));
function updateRecords(id, prop, value) {
if (!value) delete collection[id][prop];
if (!!value && prop === 'tracks'){
collection[id][prop] = []; // Solve my problem
collection[id][prop].push(value);
}
if (!!value && prop === 'artist') collection[id][prop] = value;
return collection;
}
updateRecords(5439, "tracks", "Take a Chance on Me");
Dies ist der ursprüngliche Code, der einen Fehler zurückgibt. Dies ist ein bearbeitetes und bitte ignorieren Sie diese Frage danke. Der Versuch, den Fehler zu beheben, der Push sagt, ist undefinierte Funktion. Sie können keinen Wert für Array-Objekt, wenn Undefined, so dass ich dieSo legen Sie einen Array-Wert in ein verschachteltes Array ein
Sammlung [ID] [prop] = []; // mein Problem lösen
zu vermeiden Fehler immer sagen, Druck auf diese Codezeile nicht definiert ist ....
Sammlung [id] [Prop] .push (Wert);
'Sammlung [ "5439"] [ "Titel"] = [ 'Etwas']'? – potashin
Auch das ist nicht verschachtelte Arrays, es ist ein Objekt. –
Das ist das Problem = "Wenn prop den Schlüssel" tracks "enthält und sein Wert nicht leer ist, dann drücke den Wert auf das Ende des vorhandenen Tracks-Arrays." –