1:使用Object.keys()遍历
返回一个数组,包括对象自身的(不含继承的)所有可枚举属性(不含Symbol属性)
var obj = {
a: 1,
b: 2,
c: 3
}
//输出一个数组,数组元素是对象属性的集合
console.log(Object.keys(obj)); //['a','b','c']
//根据属性取属性对应的值
Object.keys(obj).forEach((key) => {
console.log(obj[key])
})
2:使用for…in循环:比上面的多了继承的
(循环可枚举的属性,自身的和继承的)(不含Symbol属性)
for(var i in obj){
console.log(i) //输出属性
console.log(obj[i]) //输出属性对应的值
}
3:使用Object.getOwnPropertyNames()遍历:比上面的多了不可枚举的
返回一个数组,包含对象自身的所有属性(不含Symble属性),包括不可枚举属性
var obj = {
a: 1,
b: 2,
c: 3
}
console.log(Object.getOwnPropertyNames(obj)); //['a','b','c']
Object.getOwnPropertyNames(obj).forEach((key)=>{
console.log(key,obj[key]) //a 1 b 2 c 3
})
4:Reflect.ownKeys;比上面的多了Symble属性
包含所有的(自身+继承的)
var obj = {
a: 1,
b: 2,
c: 3
}
console.log(Reflect.ownKeys(obj)); //['a','b','c']
Reflect.ownKeys(obj).forEach((key)=>{
console.log(key,obj[key]) //a 1 b 2 c 3
})