繁体   English   中英

JavaScript 关于 .push()

[英]JavaScript about .push()

我在网上找了很久。 但是没有用。 请帮助或尝试提供一些想法如何实现这一点。

 var collection = { 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].push(value); return collectionCopy; } update(1245, "tracks", "Addicted to Love");


它说 collectionCopy[id][prop].push(value) 不是一个函数,我不知道为什么,但 collectionCopy[id][prop] 实际上是一个数组。 感谢帮助!

您在 update() 的 if 语句中缺少 }。 下面的修复代码工作得很好:

var collection = {
        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].push(value);
      }
      return collectionCopy;
    }

    update(1245, "tracks", "Addicted to Love");

输出:

{ 1245: { artist: 'Robert Palmer', tracks: [ 'Addicted to Love' ] },
  5439: { album: 'ABBA Gold' } }

您的 if 语句未正确关闭。 尝试使用通常可以为您完成此操作的 IDE 更整洁地构建您的代码。 代码应如下所示:

 var collection = { 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].push(value); return collectionCopy; } } update(1245, "tracks", "Addicted to Love"); console.log(collection);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM