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+。非常感谢。