我知道很多人都问过这个问题,但到目前为止,没有一个解决方案对我有效。说明如下:如果道具不是"tracks"并且值不是空的("),请更新或设置该唱片集属性的值。
函数必须始终返回整个集合对象。
处理不完整数据有几个规则:
如果prop是"tracks",但相簿没有"traces"属性,请在将新值添加到相簿的相应属性之前创建一个空数组。(我认为这是我的问题,但不知道如何将其包括在内)
如果prop是"tracks"并且值不为空("),则将该值推到相册现有tracks数组的末尾。
我目前的尝试是:
function updateRecords(id, prop, value) {
if(prop == "tracks" && value !== ""){
collection[id][prop].push(value);
} else
if (value !==""){
collection[id][prop] = value;
} else
if (value === ""){
delete collection[id][prop];
}
return collection;
}
(很抱歉格式化,我只是在学习使用此页面)感谢:)
我想我已经为此挣扎了两个多小时了。找到了解决方案,但无法理解其工作原理。希望能有所帮助。
function updateRecords(id, prop, value) {
if (prop !== "tracks" && value !== "") {
collection[id][prop] = value;
} else if (prop == "tracks" && collection[id].hasOwnProperty("tracks") === false) {
collection[id][prop] = [];
collection[id][prop].push(value);
} else if (prop == "tracks" && value !== "") {
collection[id].tracks.push(value);
} else if (value === "") {
delete collection[id][prop];
}
return collection;
}