es6 遍历数组对象获取所有的id_ES6对象遍历Object.keys()方法

【Object.keys()】

ES5 引入了Object.keys()方法,返回一个数组,成员是参数对象自身的(不含继承的)所有可遍历(enumerable)属性的键名var obj = { foo: 'bar', baz: 42 };

console.log(Object.keys(obj));// ["foo", "baz"]

ES2017 引入了跟Object.keys配套的Object.values和Object.entries,作为遍历一个对象的补充手段,供for...of循环使用let {keys, values, entries} = Object;

let obj = { a: 1, b: 2, c: 3 };

for (let key of keys(obj)) {

console.log(key); // 'a', 'b', 'c'

}

for (let value of values(obj)) {

console.log(value); // 1, 2, 3

}

for (let [key, value] of entries(obj)) {

console.log([key, value]); // ['a', 1], ['b', 2], ['c', 3]

}

【Object.values()】

Object.values()方法返回一个数组,成员是参数对象自身的(不含继承的)所有可遍历(enumerable)属性的键值

var obj = { foo: 'bar', baz: 42 };

console.log(Object.values(obj));// ["bar", 42]

Object.values()只返回对象自身的可遍历属性var obj = Object.create({}, {p: {value: 42}});

console.log(Object.values(obj)); // []

上面代码中,Object.create()方法的第二个参数添加的对象属性(属性p),如果不显式声明,默认是不可遍历的,因为p的属性描述对象的enumerable默认是false,Object.values()不会返回这个属性。只要把enumerable改成true,Object.values就会返回属性p的值var obj = Object.create({}, {p:

{

value: 42,

enumerable: true

}

});

console.log(Object.values(obj)); // [42]

【Object.entries()】

Object.entries()方法返回一个数组,成员是参数对象自身的(不含继承的)所有可遍历(enumerable)属性的键值对数组var obj = { foo: 'bar', baz: 42 };

console.log(Object.entries(obj));// [ ["foo", "bar"], ["baz", 42] ]

除了返回值不一样,该方法的行为与Object.values基本一致

Object.entries()的基本用途是遍历对象的属性let obj = { one: 1, two: 2 };

for (let [k, v] of Object.entries(obj)) {

console.log(

`${JSON.stringify(k)}: ${JSON.stringify(v)}`

);

}

// "one": 1

// "two": 2

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值