请教一个关于 json的问题!!

// 初始化变量
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"
    }
};
// 深拷贝 collection,用于测试
var collectionCopy = JSON.parse(JSON.stringify(collection));

// 请只修改这条注释以下的代码

function update(id, prop, value) {         //从这里开始是我写的!!!!!
  if(value!=''||prop!="tracks"){
    
    collection[id][prop]=value;
    
  }else if(value==""){
    
    delete collection[id][prop];
    
  }else if(value!=''||prop=="tracks"){
    
    collection[id][prop].push(value);
    
  }

  return collection;
}

// 你可以修改这一行来测试你的代码
update(5439, "artist", "ABBA");

1、update(5439, "artist", "ABBA") 之后, artist 应该为"ABBA"

2、update(2548, "artist", "") 之后,artist 应该不存在

3、update(1245, "tracks", "Addicted to Love") 之后, tracks的最后一个元素应该是"Addicted to Love"

4、update(2548, "tracks", "") 之后,tracks 应该不存在

这是我在网上做的一道题目  但是我怎么也想不明白我到底哪里写错了。。。

下面的测试只有1和4能正确显示,,各位大佬棒棒我。。。

超级巨浪大切
浏览 1241回答 2
2回答

黄沛元

很明显,你的代码没有问题,也不有你说的情况! 请注意你所用的浏览器版本问题!

qq_慕粉5384370

function update(id, prop, value) {  if (prop == "tracks" && value) {     collection[id][prop].push(value);   } else if (value) {     collection[id][prop] = value;   } else {    delete collection[id][prop];   }  return collection; }
打开App,查看更多内容
随时随地看视频慕课网APP