随着ECMAScript标准的不断更新,JavaScript语言的功能得到了不断的完善和增强。在ES8中,新增了两个遍历器方法Object.values和Object.entries,让我们一起来了解一下它们的使用方法和重要性。
1. Object.values
Object.values方法返回一个包含对象自身属性的所有值的数组。具体来说,它会遍历对象的可枚举属性,并将其对应值存储到数组中。数组中的值的顺序与对象属性遍历的顺序相同。
下面是Object.values的语法格式:
Object.values(obj)
其中,obj为需要遍历的对象。
接下来,我们通过一个实际的例子来更好地理解Object.values的使用方法:
const obj = { a: 1, b: 2, c: 3 }; const vals = Object.values(obj); console.log(vals); // [1, 2, 3]
从上面的代码中,我们可以看出,Object.values方法会将obj对象中的属性值依次存储到数组中,并返回这个数组。因此,该例子中打印出来的值为[1, 2, 3]。
2. Object.entries
Object.entries方法返回一个包含对象自身属性的所有键值对的数组。具体来说,它会遍历对象的可枚举属性,并将其以键值对的形式存储到数组中。数组中的元素的顺序与对象属性遍历的顺序相同。
下面是Object.entries的语法格式:
Object.entries(obj)
其中,obj为需要遍历的对象。
接下来,我们通过一个实际的例子来更好地理解Object.entries的使用方法:
const obj = { a: 1, b: 2, c: 3 }; const entries = Object.entries(obj); console.log(entries); // [["a", 1], ["b", 2], ["c", 3]]
从上面的代码中,我们可以看出,Object.entries方法会将obj对象中的属性以键值对的形式存储到数组中,并返回这个数组。因此,该例子中打印出来的值为[["a", 1], ["b", 2], ["c", 3]]。
3. Object.values和Object.entries的使用场景
Object.values和Object.entries的出现,可以帮助我们更方便地获取对象的属性值和键值对,同时也在很多场景下提高了代码的可读性和可维护性。
例如,在React开发中,我们经常需要将一个对象中的属性值作为组件的props进行传递,此时就可以使用Object.values方法,将对象中的属性值转化为数组,并通过展开运算符(...)进行传递。示例如下:
const props = {name: '张三', age: 18}; return <MyComponent {...Object.values(props)} />;
又例如,在处理一个有序集合时,我们需要得到该集合的每个元素对应的键值对,此时就可以使用Object.entries方法,将所有的键值对存储到数组中,并进行遍历或其他的操作。示例如下:
const orderedList = {1: '第一篇文章', 2: '第二篇文章', 3: '第三篇文章'}; const entries = Object.entries(orderedList); for(let [key, value] of entries) { console.log(`文章${key}:${value}`); }
4. 总结
Object.values和Object.entries是ES8中新增的两个遍历器方法,它们可以帮助我们更方便地获取对象的属性值和键值对,同时也在很多场景下提高了代码的可读性和可维护性。我们可以在实际开发中根据不同的需求选择合适的方法进行使用,从而提升开发效率和代码质量。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6527c7747d4982a6eba5e7fd