javascript - 使用 for 循环迭代对象和数组并添加键/值对

标签 javascript

我正在尝试了解如何迭代类似于以下内容的对象:

var json = {"tsn": {
    "events": [
        {
          "title": "Lorem ipsum",  
          "description": "Dolor sit"
        },
        {
          "title": "Duis aute irure",  
          "description": "eu fugiat nulla pariatur"
        },
      ],
    "occurrence": [
        "Music",
        "Party"
      ]
    }    
};

我想按照下面的代码显式地使用 for 循环(而不是 for in)

for(var i = 0; i < json.length; i++) {
    console.log(json.tsn.events[i].title);
}

为什么上面的代码没有获取到所有的title

其次,我应该如何获取所有的occurrence

最后,我如何向 events 添加一个新的键/值对,例如 {"image": "cat.jpg"} 以便 json 对象结果如下:

var json = {"tsn": {
    "events": [
        {
          "title": "Lorem ipsum",  
          "description": "Dolor sit",
          "image": "cat.jpg"
        },
        {
          "title": "Duis aute irure",  
          "description": "eu fugiat nulla pariatur",
          "image": "dog.jpg"
        },
      ],
    "occurrence": [
        "Music",
        "Party"
      ]
    }    
};

最佳答案

因为你使用了错误的长度。使用:

for (var i=0;i<json.tsn.events.length; i++) { ...

然后你应该是金色的。对于发生的情况,它几乎是一样的——循环为:

for (var i=0;i<json.tsn.occurrence.length; i++) {
    console.log(json.tsn.occurrence[i]);
}

而且您还会将这些值拉回来。

关于javascript - 使用 for 循环迭代对象和数组并添加键/值对,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42496978/

相关文章:

javascript - 如何计算数字和数学运算符的数组(或字符串)

javascript - 使用 CasperJS 的 getElementByXPath 根据变量在页面上查找元素

javascript - 我如何指向两个字段以在 javascript 中使用相同的值

javascript - 动态引用 JQUERY 中的子元素

javascript - 无法将十进制 html 特殊字符分配给 dom 值

javascript - 奇怪的 JavaScript 代码

javascript - 我可以在 React Router 的 Switch 内使用高阶私有(private)路由组件吗?

javascript - 如何使用 JavaScript/jQuery 对数组或对象中的多个项目进行索引?

javascript - 咕噜声 : Warning: Object #<Object> has no method 'indexOf'

javascript - 为什么这个 event.target.previousElementSibling 不起作用?