我正在完成一個freeCodeCamp exercise,我已經死了。使用javascript函數輸入更改JSON對象值
該練習的目的是編寫一個帶有3個參數的函數(id, prop, value
)。
經過一番評估(檢查prop是否爲空,檢查prop是否爲「tracks」),函數應該更改預定義的JSON對象(一個記錄集合)。
運行我的代碼,我得到了一些好奇的結果。錯誤的JSON屬性會更新,或者根本不會更新。我懷疑問題出在對象調用上,但我無法弄清楚我做錯了什麼。任何幫助表示讚賞。
// Setup
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"
}
};
// Keep a copy of the collection for tests
var collectionCopy = JSON.parse(JSON.stringify(collection));
// Only change code below this line
function update(id, prop, value) {
if(value !== "") {
if(prop == "tracks") {
collection[id][prop].push(value);
}
else {
collection[id][prop] = "";
}
collection[id][prop] = value;
}
return collection;
}
// Alter values below to test your code
update(5439, "artist", "ABBA");
我還創建了一個codepen具有相同的代碼,如果有人想鼓搗。
您codepen是不同的......在這你說'集合[ID] [道具] =道具;'... ...的兩倍,而不是'集合[ID ] [prop] = value;'...並且在這段代碼中,除了「tracks」之外,你設置了collection [id] [prop] =「」;' –