与codecamp斗争:记录集合(JSON)



我知道很多人都问过这个问题,但到目前为止,没有一个解决方案对我有效。说明如下:如果道具不是"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;
}

最新更新