for…in
-
数组索引只是具有整数名称的枚举属性,并且与通用对象属性相同。不能保证for … in将以任何特定的顺序返回索引。for …
in循环语句将返回所有可枚举属性,包括非整数类型的名称和继承的那些。因为迭代的顺序是依赖于执行环境的,所以数组遍历不一定按次序访问元素。因此当迭代访问顺序很重要的数组时,最好用整数索引去进行for循环(或者使用
Array.prototype.forEach() 或 for…of 循环)。
说一百遍不如写一遍,看代码
var object = new Array()
object[0] = "Apple"
object[1] = "Banana"
object[2] = "Orange"
object.color = "Greens"
for (const key in object) {
if (object.hasOwnProperty(key)) {
console.log(" key : ", key);
}
}
// 0,1,2,color
var list = {"1":"apple","2":"orange","3":"banana"}
list.color = "green"
for(const key in list){
if(list.hasOwnProperty(key)){
console.log(" key ", key);
}
}
//1,2,3,color