【发布时间】:2016-04-24 20:17:56
【问题描述】:
我是 Javascript 新手,所以这可能相当容易。
我有这个 JSON:
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));
function updateRecords(id, prop, value) {
if (value !== "" && prop !== "tracks"){
return collection.id.prop.value;
} else if (value !== "" && prop === "tracks"){
return collection.id.prop.push(value);
} else {
delete collection.id.prop.value;
}
return collection;
}
这些是我的测试:
updateRecords(5439, "艺术家", "ABBA");
updateRecords(2548, "艺术家", "");
updateRecords(1245, "tracks", "沉迷于爱情");
updateRecords(2458, "tracks", "");
我需要做的是编写一个函数,该函数将访问JSON 信息并在参数value 为非空白(value !== "")且prop 参数不是tracks 时添加信息( props !== "tracks) 更新或设置参数 prop 的值。
此外,如果参数 prop 是轨道 (props === "tracks") 并且参数 value 也是非空白 (value !== "") 我需要将值推到 tracks 内部的末尾JSON 文件。
我的问题是我该怎么做呢?我的显然失败了我知道我需要delete 和push 的信息,但是访问正确的数据让我感到困惑,我会做类似的事情:return collection.id.prop.push(value);?
【问题讨论】:
标签: javascript json