我有一个JavaScript对象,如下所示:

var p = {
    "p1": "value1",
    "p2": "value2",
    "p3": "value3"
};

我如何循环遍历p的所有元素(p1、p2、p3…)并获取它们的键和值?


当前回答

自ES2015以来,您可以使用for of循环直接访问元素:

// before ES2015
for(var key of elements){
  console.log(elements[key]);
}


// ES2015
for(let element of elements){
  console.log(element);
}

希望这对某人有所帮助。

其他回答

自ES2015以来,您可以使用for of循环直接访问元素:

// before ES2015
for(var key of elements){
  console.log(elements[key]);
}


// ES2015
for(let element of elements){
  console.log(element);
}

希望这对某人有所帮助。

只有JavaScript代码没有依赖项:

var p = {"p1": "value1", "p2": "value2", "p3": "value3"};
keys = Object.keys(p);   // ["p1", "p2", "p3"]

for(i = 0; i < keys.length; i++){
  console.log(keys[i] + "=" + p[keys[i]]);   // p1=value1, p2=value2, p3=value3
}

单级缩进单组支架最高的浏览器兼容性hasOwnProperty安全

var p={“p1”:“value1”,“p2”:“value 2”,“p3”:“值3”};for(p中的var键)if(p.hasOwnProperty(键)){var值=p[key];console.log(键,值);}

var p=[{“用户名”:“ordermanageadmin”,“user_id”:“2”,“resource_id”“Magento_Sales::actions”},{“用户名”:“ordermanageadmin_1”,“user_id”:“3”,“resource_id”“Magento_Sales::actions”}]for(p中的var值){for(值中的var键){if(p.hasOwnProperty(键)){console.log(键+“->”+p[key]);}}}

如果只想迭代财产,请使用上面的答案之一,但是如果要迭代包括函数在内的所有内容,则可能需要使用Object.getOwnPropertyNames(obj)

for(let o of Object.getOwnPropertyNames(数学)){console.log(o);}

我有时会用它来快速测试具有简单输入和输出的对象上的所有函数。