Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/414.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript JSON forEach获取键和值_Javascript_Foreach - Fatal编程技术网

Javascript JSON forEach获取键和值

Javascript JSON forEach获取键和值,javascript,foreach,Javascript,Foreach,我在名为obj的JSON对象上有以下forEach循环: Object.keys(obj).forEach(function(){}); 如何使对象中每个项目的console.log同时包含key和value 大概是这样的: Object.keys(obj).forEach(function(k, v){ console.log(k + ' - ' + v); }); var prop; for(prop in obj) { if(!obj.hasOwnProperty(pr

我在名为
obj
的JSON对象上有以下
forEach
循环:

Object.keys(obj).forEach(function(){});
如何使对象中每个项目的
console.log
同时包含
key
value

大概是这样的:

Object.keys(obj).forEach(function(k, v){
    console.log(k + ' - ' + v);
});
var prop;
for(prop in obj) {
    if(!obj.hasOwnProperty(prop)) continue;

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

试着这样做:

Object.keys(obj).forEach(function(k, v){
    console.log(k + ' - ' + v);
});
var prop;
for(prop in obj) {
    if(!obj.hasOwnProperty(prop)) continue;

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

对键使用索引符号

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

假设
obj
是一个预先构造的对象(而不是JSON字符串),您可以通过以下方法实现这一点:

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

另一种简单的方法是使用以下语法迭代对象,保持对键和值的访问:

for(var key in object){
  console.log(key + ' - ' + object[key])
}
所以对你来说:

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

ES6

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

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


我会这样做的假设我有JSON电影

movies.forEach((obj) => {
  Object.entries(obj).forEach(([key, value]) => {
    console.log(`${key} ${value}`);
  });
});
与…结合使用

const壁纸=[{
壁纸_键:“壁纸.图像”,
壁纸\u有效\u键:“WALLPAPER.image.VALID”,
}, {
墙纸按键:“锁屏.图像”,
墙纸\u有效\u键:'lockscreen.image.VALID',
}];
壁纸。forEach((obj)=>{
for(Object.entries(obj))的常量[key,value]{
log(`${key}-${value}`);
}

});
hasOwnProperty
不是必需的,因为
Object.key
已经只包含自己的属性。()Doenst Object.keys()确保只访问对象本身的属性?所以不需要hasOwnProperty?在这种情况下,使用
hasOwnProperty
是必要的,因为for…In构造包括通过prototype chain.Object.entries继承的属性,如果您有ES7+。非常感谢。