Javascript FreeCodeCamp:我被困在了;记录收集“;
我正在做Freecodecamp教程,但我被卡住了。编写了以下代码,但不起作用:Javascript FreeCodeCamp:我被困在了;记录收集“;,javascript,json,Javascript,Json,我正在做Freecodecamp教程,但我被卡住了。编写了以下代码,但不起作用: function updateRecords(id, prop, value) { if(value!==""){ if(prop==="tracks") collection[id][prop].push(value); else collection[id][prop] =value; }else delete collection[id][prop]; ret
function updateRecords(id, prop, value) {
if(value!==""){
if(prop==="tracks")
collection[id][prop].push(value);
else
collection[id][prop] =value;
}else
delete collection[id][prop];
return collection;
}
请有人能帮帮我 我已经试过这个问题了。下面的解决方案应该有效。我在一行中添加了单独的if语句,以便更容易理解。如果您需要任何澄清,请告诉我
function updateRecords(id, prop, value) {
if (prop === "tracks" && (!(collection[id]).tracks)) {collection[id].tracks = [];}
if (prop === "tracks" && value !== "") {collection[id].tracks.push(value);}
else if (prop !== "tracks" && value !== "") {collection[id][prop] = value;}
else if (value === "") {delete collection[id][prop];}
return collection;
}
此外,以下是问题的说明,以供将来参考:
==========
您将获得一个JSON对象,表示音乐专辑集合的一部分。每个相册都有几个属性和唯一的id号作为其密钥。并非所有相册都有完整的信息
编写一个函数,该函数使用专辑的id(如2548)、属性道具(如“艺术家”或“曲目”)和值(如“沉迷于爱情”)来修改此集合中的数据
如果道具不是“曲目”且值不是空(“”),请更新或设置该唱片集属性的值
函数必须始终返回整个集合对象
处理不完整数据有几个规则:
如果prop为“tracks”,但相册没有“tracks”属性,请在将新值添加到相册的相应属性之前创建一个空数组
如果道具为“曲目”且值不为空(“”),请将该值推送到唱片集现有曲目数组的末尾
如果值为空(“”),请从相册中删除给定的道具属性
==========这个问题我已经试过了。下面的解决方案应该有效。我在一行中添加了单独的if语句,以便更容易理解。如果您需要任何澄清,请告诉我
function updateRecords(id, prop, value) {
if (prop === "tracks" && (!(collection[id]).tracks)) {collection[id].tracks = [];}
if (prop === "tracks" && value !== "") {collection[id].tracks.push(value);}
else if (prop !== "tracks" && value !== "") {collection[id][prop] = value;}
else if (value === "") {delete collection[id][prop];}
return collection;
}
此外,以下是问题的说明,以供将来参考:
==========
您将获得一个JSON对象,表示音乐专辑集合的一部分。每个相册都有几个属性和唯一的id号作为其密钥。并非所有相册都有完整的信息
编写一个函数,该函数使用专辑的id(如2548)、属性道具(如“艺术家”或“曲目”)和值(如“沉迷于爱情”)来修改此集合中的数据
如果道具不是“曲目”且值不是空(“”),请更新或设置该唱片集属性的值
函数必须始终返回整个集合对象
处理不完整数据有几个规则:
如果prop为“tracks”,但相册没有“tracks”属性,请在将新值添加到相册的相应属性之前创建一个空数组
如果道具为“曲目”且值不为空(“”),请将该值推送到唱片集现有曲目数组的末尾
如果值为空(“”),请从相册中删除给定的道具属性
=============您被困在:
if(道具==“音轨”)
集合[id][prop]。推送(值);\ \当集合有一个属性“tracks”时发生,如果没有,则不会发生,对于检查,他们给出的id=5249没有“tracks”。
我认为你应该补充:
if(集合[id].hasOwnProperty(prop)){
集合[id][prop].push(值);
}否则{
集合[id][prop]=[];
集合[id][prop].push(值);`在此处输入代码`
}
如果(道具==“轨迹”)之后
希望它能帮助你解决这个问题 你被困在:
if(道具==“音轨”)
集合[id][prop]。推送(值);\ \当集合有一个属性“tracks”时发生,如果没有,则不会发生,对于检查,他们给出的id=5249没有“tracks”。
我认为你应该补充:
if(集合[id].hasOwnProperty(prop)){
集合[id][prop].push(值);
}否则{
集合[id][prop]=[];
集合[id][prop].push(值);`在此处输入代码`
}
如果(道具==“轨迹”)之后
希望它能帮助你解决这个问题 如果使用所有if语句执行该函数,则该函数也将运行 这是:
function updateRecords(id, prop, value) {
if (prop === "tracks" && (!(collection[id]).tracks)) {
collection[id].tracks = [];
}
if (prop === "tracks" && value !== "") {
collection[id].tracks.push(value);
}
if (prop !== "tracks" && value !== "") {
collection[id][prop] = value;
}
if (value === "") {
delete collection[id][prop];
}
return collection;
}
如果使用所有if语句执行该函数,则该函数也将运行 这是:
function updateRecords(id, prop, value) {
if (prop === "tracks" && (!(collection[id]).tracks)) {
collection[id].tracks = [];
}
if (prop === "tracks" && value !== "") {
collection[id].tracks.push(value);
}
if (prop !== "tracks" && value !== "") {
collection[id][prop] = value;
}
if (value === "") {
delete collection[id][prop];
}
return collection;
}
我的答案是:
function updateRecords(collection, id, prop, value) {
if(value === "")
{
delete collection[id][prop];
}
else if(prop != "tracks" && value != ""){
collection[id][prop] = value;
}
else if (prop === "tracks" ){
if(value == "Free")
{
collection[id][prop[0]] = [1999];
}
else{
collection[id][prop] = [value];
}
}
return collection
}
我的答案是:
function updateRecords(collection, id, prop, value) {
if(value === "")
{
delete collection[id][prop];
}
else if(prop != "tracks" && value != ""){
collection[id][prop] = value;
}
else if (prop === "tracks" ){
if(value == "Free")
{
collection[id][prop[0]] = [1999];
}
else{
collection[id][prop] = [value];
}
}
return collection
}
现在它在一个代码块中。请正确格式化。@ChrisMM现在可以了吗?现在它在一个代码块中。请正确格式化。@ChrisMM现在可以了吗?