使用codecamp苦苦挣扎:记录集合(JSON)

时间:2016-07-18 03:04:56

标签: json

我知道很多人都问过这个,但到目前为止,没有一个解决方案对我有用。说明是: 如果道具不是"跟踪"并且值不为空(""),更新或设置该记录专辑的属性值。

您的函数必须始终返回整个集合对象。

处理不完整数据有几条规则:

如果道具是"追踪"但这张专辑并没有“跟踪”#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;
}

(抱歉格式化,我只是学习使用此页面) 谢谢:))

1 个答案:

答案 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;
}