ECMAScript 2017(ES8)中的遍历器方法:Object.values 和 Object.entries

阅读时长 4 分钟读完

随着ECMAScript标准的不断更新,JavaScript语言的功能得到了不断的完善和增强。在ES8中,新增了两个遍历器方法Object.values和Object.entries,让我们一起来了解一下它们的使用方法和重要性。

1. Object.values

Object.values方法返回一个包含对象自身属性的所有值的数组。具体来说,它会遍历对象的可枚举属性,并将其对应值存储到数组中。数组中的值的顺序与对象属性遍历的顺序相同。

下面是Object.values的语法格式:

其中,obj为需要遍历的对象。

接下来,我们通过一个实际的例子来更好地理解Object.values的使用方法:

从上面的代码中,我们可以看出,Object.values方法会将obj对象中的属性值依次存储到数组中,并返回这个数组。因此,该例子中打印出来的值为[1, 2, 3]。

2. Object.entries

Object.entries方法返回一个包含对象自身属性的所有键值对的数组。具体来说,它会遍历对象的可枚举属性,并将其以键值对的形式存储到数组中。数组中的元素的顺序与对象属性遍历的顺序相同。

下面是Object.entries的语法格式:

其中,obj为需要遍历的对象。

接下来,我们通过一个实际的例子来更好地理解Object.entries的使用方法:

从上面的代码中,我们可以看出,Object.entries方法会将obj对象中的属性以键值对的形式存储到数组中,并返回这个数组。因此,该例子中打印出来的值为[["a", 1], ["b", 2], ["c", 3]]。

3. Object.values和Object.entries的使用场景

Object.values和Object.entries的出现,可以帮助我们更方便地获取对象的属性值和键值对,同时也在很多场景下提高了代码的可读性和可维护性。

例如,在React开发中,我们经常需要将一个对象中的属性值作为组件的props进行传递,此时就可以使用Object.values方法,将对象中的属性值转化为数组,并通过展开运算符(...)进行传递。示例如下:

又例如,在处理一个有序集合时,我们需要得到该集合的每个元素对应的键值对,此时就可以使用Object.entries方法,将所有的键值对存储到数组中,并进行遍历或其他的操作。示例如下:

4. 总结

Object.values和Object.entries是ES8中新增的两个遍历器方法,它们可以帮助我们更方便地获取对象的属性值和键值对,同时也在很多场景下提高了代码的可读性和可维护性。我们可以在实际开发中根据不同的需求选择合适的方法进行使用,从而提升开发效率和代码质量。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6527c7747d4982a6eba5e7fd

纠错
反馈