Object.keys
Object.keys
Object.keys
,返回一个由给定对象的自身可枚举属性组成的数组,数组中属性名的排列顺序和使用 for...in
循环遍历该对象时返回的顺序一致。
如果对象的键-值都不可枚举,那么将返回由键组成的数组。
1 2 3 4 |
// 语法 Object.keys(obj) // 返回值: 给定对象的所有可枚举属性的字符串数组。 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
var arr = ['a', 'b', 'c']; console.log(Object.keys(arr)); // console: ['0', '1', '2'] var obj = { 0: 'a', 1: 'b', 2: 'c' }; console.log(Object.keys(obj)); // console: ['0', '1', '2'] var anObj = { 100: 'a', 2: 'b', 7: 'c' }; console.log(Object.keys(anObj)); // console: ['2', '7', '100'] var myObj = Object.create({}, { // getFoo 不可枚举 getFoo: { value: function () { return this.foo; } } }); myObj.foo = 1; console.log(Object.keys(myObj)); // console: ['foo'] |
如果需要获取对象的所有属性,包括不可枚举的,可以使用Object.getOwnPropertyNames
。
Polyfill
Polyfill的实现可参考: https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Object/keys#Polyfill