Object.keys()
是 JavaScript 中的一个内置方法,用于返回一个由指定对象的所有可枚举属性的键组成的数组。
Object.keys()
方法会遍历目标对象的可枚举属性(不包括继承的属性),并返回一个数组,该数组包含了这些属性的键。
1 // (1)数组Array对象(返回索引值) 2 let arr = ['1','2','3'] 3 console.log(Object.keys(arr)) // ["0", "1", "2”] 4 5 // (2)object对象(返回key值) 6 let obj = { 7 a : '1', 8 b : '2', 9 c : '3', 10 } 11 console.log(Object.keys(obj)) // ['a', 'b', 'c'] 12 13 // (3)类数组,对象 14 let object = { 15 0 : 'a', 16 1 : 'b', 17 2 : 'c' 18 } 19 console.log(Object.keys(object)) // ['0', '1', '2'] 20 21 // (4)类数组对象 随机key排序 22 let obj2 = { 23 99 : 'a', 24 7 : 'b', 25 78 : 'c' 26 } 27 console.log(Object.keys(obj2)) // ['7', '78', '99']
Object.keys()
的工作原理:
1.首先,它检查传入的参数是否为对象。如果参数不是对象,则会抛出 TypeError
。
2.然后,它创建一个空数组,用于存储属性的键。
3.接下来,它遍历对象的可枚举属性,对每个属性执行以下操作:将属性的键添加到数组中。
4.最后,它返回包含属性键的数组。
需要注意的是,Object.keys()
只返回对象自身的可枚举属性的键,不包括继承的属性和不可枚举的属性。如果需要获取所有属性的键(包括继承的属性和不可枚举的属性),可以使用 for...in
循环或 Object.getOwnPropertyNames()
方法。
Object.keys()
方法在实际开发中有许多常见的使用场景,以下是一些常见的应用场景:
-
遍历对象属性:通过将
Object.keys()
与forEach
、map
等数组方法结合使用,可以方便地遍历对象的所有属性。 -
获取对象属性数量:通过获取返回数组的长度,可以快速获取对象包含的属性数量。
-
检查对象是否包含特定属性:通过使用
Array.prototype.includes()
或indexOf()
方法,可以轻松检查对象是否包含特定属性。 -
对象属性过滤:可以使用
Object.keys()
方法结合filter
方法,快速过滤对象的属性。 -
对象属性映射:结合
map
方法,可以对对象的属性进行映射操作,生成新的属性数组。 -
将对象属性转换为数组:通过
Object.keys()
方法可以将对象的键转换为一个数组,方便后续处理。 -
对象属性排序:可以使用
Object.keys()
方法获取对象的属性键数组,并对其进行排序操作。 -
对象属性比较:可以使用
Object.keys()
方法获取两个对象的属性数组,然后进行比较操作。
总的来说,Object.keys()
方法非常实用,可以帮助开发人员方便地处理对象的属性,提高代码的可读性和可维护性。在需要操作对象属性时,特别是在需要动态处理对象属性时,Object.keys()
是一个非常有用的工具。