1.for … in 循环遍历对象本身的和继承的可枚举属性(循环遍历对象本身的和继承的可枚举属性(不含Symbol属性))
let obj = { '0': a, '1': b, '2': c}for (let i in obj) { console.log(i, obj[i])}// 0 a// 1 b// 2 c
2.应用Object.keys()遍历 (返回一个数组,包含对象本身的(不含继承的)所有可枚举属性(不含Symbol属性))
Object.keys(obj).forEach(key => { console.log(key, obj[key])})// 0 a// 1 b// 2 c
第二种
Object.keys(obj)Object.values(obj)
参数:obj: 要返回其枚举本身属性的对象
返回值:一个示意给定对象的所有的可枚举属性的字符串数组
let obj1 = { id: 1, name: 'test', age: 12}console.log(Object.keys(obj1)) // ['id', 'name', 'age']console.log(Object.valuse(obj1)) // [1, 'test', 12]
3.Object.getOwnPropertyNames(obj),返回一个数组,蕴含对象本身的所有属性(不含Symbol属性,然而包含不可枚举属性)
Object.getOwnPropertyNames(obj).forEach(key => { console.log(key, obj[key])})
4.应用Reflect.ownKeys(obj)遍历,返回一个数组,蕴含对象本身的所有属性,不论属性名是Symbol或字符串,也不论是否可枚举
Reflect.ownKeys(obj).forEach(key => { console.log(key, obj[key])})// 0 a// 1 b// 2 c
原文:https://www.cnblogs.com/yuer20180726/p/11377897.html