关于javascript:js-ES6遍历对象的6种方法

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

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理