我有一个像以下JavaScript对象:
var p = {
"p1": "value1",
"p2": "value2",
"p3": "value3"
};
Run Code Online (Sandbox Code Playgroud)
现在我想通过所有回路p元素(p1,p2,p3...),并得到他们的键和值.我怎样才能做到这一点?
如有必要,我可以修改JavaScript对象.我的最终目标是遍历一些键值对,如果可能的话,我想避免使用eval.
我学到的是数组是一种对象。对象是具有键/值对的属性集合。我一直认为数组是从 0 开始数字索引的项目的集合。就在最近,我能够向数组添加一个非数字键。
let arr = ['cribriform plate','mastoid','hyoid'];
arr.eyes = 'brown';
arr.skin = 'white';
Run Code Online (Sandbox Code Playgroud)
这导致
['cribriform plate','mastoid','hyoid',eyes : 'brown', skin : 'white'];
Run Code Online (Sandbox Code Playgroud)
arr 的 for...in 循环产生了:
for(let i in arr){
console.log(i);
//0,1,2,3,eyes,skin
}
Run Code Online (Sandbox Code Playgroud)
for...of 循环产生:
for(let i of arr){
console.log(i);
//0,1,2,3
}
Run Code Online (Sandbox Code Playgroud)
我能够使用 for...in 循环遍历数组的所有键。但是,当我使用 for...of 循环时,我只能迭代数字索引键。这是为什么?
而且,数组最准确的定义是什么?