简体   繁体   English

JSON forEach 获取键和值

[英]JSON forEach get Key and Value

I have the following forEach loop over a JSON object called obj :我在名为obj的 JSON 对象上有以下forEach循环:

Object.keys(obj).forEach(function(){});

How can I make it console.log both key and value of each item inside the object?如何将对象内每个项目的keyvalueconsole.log

Something like this:像这样的东西:

Object.keys(obj).forEach(function(k, v){
    console.log(k + ' - ' + v);
});

Use index notation with the key.对键使用索引符号。

Object.keys(obj).forEach(function(k){
    console.log(k + ' - ' + obj[k]);
});

Loop through object with arrow functions使用箭头函数循环遍历对象

ES6 ES6

Object.keys(myObj).forEach(key => {
    console.log(key + ' - ' + myObj[key]) // key - value
})

ES7 ES7

Object.entries(myObj).forEach(([key, value]) => {
    console.log(key + ' - ' + value) // key - value
})

ES8 ES8

Loop through objects with ES8 with explanation 使用 ES8 循环遍历对象并附有说明

Assuming that obj is a pre-constructed object (and not a JSON string), you can achieve this with the following:假设obj是一个预先构造的对象(而不是 JSON 字符串),您可以通过以下方式实现:

Object.keys(obj).forEach(function(key){
   console.log(key + '=' + obj[key]);
});

Another easy way to do this is by using the following syntax to iterate through the object, keeping access to the key and value:另一种简单的方法是使用以下语法遍历对象,保持对键和值的访问:

for(var key in object){
  console.log(key + ' - ' + object[key])
}

so for yours:所以对于你的:

for(var key in obj){
  console.log(key + ' - ' + obj[key])
}

Try something like this:尝试这样的事情:

var prop;
for(prop in obj) {
    if(!obj.hasOwnProperty(prop)) continue;

    console.log(prop + " - "+ obj[prop]);
}

I would do it this way.我会这样做。 Assuming I have a JSON of movies ...假设我有一个电影的JSON ......

movies.forEach((obj) => {
  Object.entries(obj).forEach(([key, value]) => {
    console.log(`${key} ${value}`);
  });
});

Use forEach in combo with Object.entries() .forEachObject.entries() 结合使用

 const WALLPAPERS = [{ WALLPAPER_KEY: 'wallpaper.image', WALLPAPER_VALID_KEY: 'wallpaper.image.valid', }, { WALLPAPER_KEY: 'lockscreen.image', WALLPAPER_VALID_KEY: 'lockscreen.image.valid', }]; WALLPAPERS.forEach((obj) => { for (const [key, value] of Object.entries(obj)) { console.log(`${key} - ${value}`); } });

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

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