快捷导航

JavaScript JSON集合操作

这是提示:有一个JSON对象,代表着你的专辑集。每一张专辑由一个唯一的id标识,并具有多种属性。但并非所有的专辑都有完整的信息。写一个函数,它有个三个参数,id、prop、value。如果 value !='' 而且prop != 'tracks',collectionCopy[id][prop]=value;。如果 value !='' 而且prop == 'tracks',collectionCopy[id][prop].push(value);。如果 value == '' ,delete collectionCopy[id][prop];。这是要求:update(5439, "artist", "ABBA")之后,artist应该为"ABBA"update(2548, "artist", "")之后,artist应该不存在update(1245, "tracks", "Addicted to Love")之后,tracks的最后一个元素应该是"Addicted to Love"update(2548, "tracks", "")之后,tracks应该不存在我代码这样不知道那里有问题:var collection = {  2548: {   album: "Slippery When Wet",   artist: "Bon Jovi",   tracks: [    "Let It Rock",    "You Give Love a Bad Name"   ]  },  2468: {   album: "1999",   artist: "Prince",   tracks: [    "1999",    "Little Red Corvette"   ]  },  1245: {   artist: "Robert Palmer",   tracks: [ ]  },  5439: {   album: "ABBA Gold"  }};var collectionCopy = JSON.parse(JSON.stringify(collection));function update(id, prop, value) { if(value != " " && prop != "tracks"){  collectionCopy[id][prop] = value; }else if ( value != ' ' && prop == 'tracks'){  collectionCopy[id][prop].push(value); }else if (value == ' '){  delete colectionCopy[id][prop]; } return collection;}update(5439, "artist", "ABBA");

免责声明:本内容仅代表回答者见解不代表本站观点,请谨慎对待。

版权声明:作者保留权利,不代表本站立场。

回复

使用道具 举报

参与会员4

倒数第三行
回复

使用道具 举报

拼写错误,最后一行collection     !
回复

使用道具 举报


function update(id, prop, value) {
if(value !==''&&prop !=='tracks'){
collectionCopy[id][prop]=value;
}
else if(value !==''&&prop =='tracks'){
collectionCopy[id][prop].push(value);
}
else if(value ===''){
delete collectionCopy[id][prop];
}
return collection;
}
单引号或者双引号内不留空格
回复

使用道具 举报

不用写else, 直接if, 应该是最先判断value是不是空, 这个是执行顺序的问题, 然后应该是returncollectionCopy,而不是collection
回复

使用道具 举报

可能感兴趣的问答

发新帖
  • 微信访问
  • 手机APP