Object方法 — Object.entries()

Object方法 — Object.entries()

Object.entries() 方法是 JavaScript 中的一个静态方法,用于返回一个给定对象自身可枚举属性的键值对数组。

该方法接受一个对象作为参数,并将该对象的可枚举属性转换为一个二维数组,其中每个子数组包含两个元素:属性的键和属性的值。返回的数组中的键值对顺序与对象自身属性的遍历顺序一致。

 

 

 1 // (1)当键值为正常字符时,返回的键的值为字符串
 2 let object = {
 3     a : 1,
 4     b : 2,
 5     c : 3,
 6     d : {
 7         e : 1,
 8         f :2,
 9         g :3
10     }
11 }
12 let res = Object.entries(object)
13 console.log(res) //[['a', '1'], ['b', '2'],['c', '3'],['d', {…}]]
14 
15 // (2)当键值为数字时,返回的键的值也是字符串
16 let obj = {
17     1 : 'a',
18     2 : 'b',
19     3 : 'c'
20 }
21 let res1 = Object.entries(obj)
22 console.log(res1) //[['1', 'a'],['2', 'b'],['3', 'c']]
23 
24 // (3)当键值的数字错乱无序时,它会将其排序后返回
25 let obj1 = {
26     20 : 'a',
27     3 :'b',
28     999: 'c'
29 }
30 let res2 = Object.entries(obj1)
31 console.log(res2) //[['3', 'b'],['20', 'a'], ['999', 'c']]
32 
33 // (4)展开对象
34 for (let [key, value] of Object.entries(object)) {
35  console.log(`${key}: ${value}`);
36 }

 

 

Object.entries() 方法的原理如下:

1.首先,创建一个空数组,用于存储键值对。

2.然后,遍历给定对象的所有可枚举属性。

3.对于每个可枚举属性,将其键和相应的值组成一个子数组,并将该子数组添加到步骤1中创建的数组中。

 

需要注意的是,Object.entries() 方法只会遍历对象自身的可枚举属性,不会遍历原型链上的属性。如果需要遍历对象自身和继承的所有可枚举属性,可以使用 for...in 循环。

此外,Object.entries() 方法返回的数组是一个浅拷贝,即数组中的键值对是原始对象属性的副本,但对属性值的修改会反映到原始对象上。

 

 

总的来说,Object.entries() 方法提供了一种方便获取对象键值对的方式,适用于迭代对象属性、进行转换和其他操作。

 

posted on 2024-02-22 11:04  萬事順意  阅读(1173)  评论(0编辑  收藏  举报