我知道很多人都问过这个,但到目前为止,没有一个解决方案对我有用。说明是: 如果道具不是"跟踪"并且值不为空(""),更新或设置该记录专辑的属性值。
您的函数必须始终返回整个集合对象。
处理不完整数据有几条规则:
如果道具是"追踪"但这张专辑并没有“跟踪”#34; property,在将新值添加到相册的相应属性之前创建一个空数组。 (我认为这是我的问题,但无法弄清楚如何包含它)
如果道具是"追踪"并且值不空(""),将值推到专辑现有曲目阵列的末尾。
我目前的尝试是:
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;
}
(抱歉格式化,我只是学习使用此页面) 谢谢:))
答案 0 :(得分:0)
我猜,我一直在为此奋斗超过两个小时。找到解决方案,但无法理解它是如何工作的。希望它有所帮助。
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;
}