在 ES2018 中,Object.entries() 和 Object.values() 被引入,作为 Object 对象的两个新方法。它们提供了更方便快捷的方式来获取对象的键值对和值数组,拓展了对象操作的能力。
Object.entries()
Object.entries() 方法返回一个包含对象自身可枚举属性的键值对数组,其顺序与 for...in 循环遍历的顺序一致(区别在于for...in 循环不仅能遍历对象自身属性,而且能遍历继承自原型链中的属性)。
语法如下:
Object.entries(obj)
其中 obj 为对象,返回一个数组,数组中每一项均为一个包含键值对的数组。
下面是一个实际用途的例子,展示如何解决循环中使用 delete 关键字问题:
let obj = { first_name: 'John', last_name: 'Doe', age: 21 }; for (let [key, value] of Object.entries(obj)) { console.log(`${key}: ${value}`); if (key === 'age') { delete obj[key]; } } console.log(obj); // { first_name: 'John', last_name: 'Doe' }
Object.values()
Object.values() 方法与 Object.entries() 方法的语法相似,只是它返回的是一个包含对象自身可枚举属性的值数组。
Object.values(obj)
下面是一个根据对象属性值来查找对象具体属性的例子,演示了 Object.values() 的使用方法:
let obj = { a: 100, b: 200, c: 300 }; let val = 200; let key = Object.keys(obj).find(key => obj[key] === val); console.log(key); // 'b'
总结
Object.entries() 和 Object.values() 这两个方法的加入使操作对象更加便捷。以前是要遍历整个对象,才能完成类似的操作,而现在不但代码简洁、可读性更强,而且使用起来非常方便。特别是在需要删除对象属性或者查找对象属性值的情况下,使用这两个方法会更具优势。与其他语言的方法相比,这两个方法的功能是非常完整的,使用频率非常高。
总的来说,Object.entries() 和 Object.values() 方法的加入,拓展了 JavaScript 的语言能力,使得开发者能够以更高效、更方便的方式操作对象,减少不必要的代码,提升开发效率。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/65b8ab80add4f0e0ff13fd07