我正在完成一个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] =“”;' –