概述
ECMAScript 2018 是 JavaScript 的最新版本,其中 Object 对象新增了 Object.values() 和 Object.entries() 两个方法,用于获取对象的属性值和键值对数组。本文将详细介绍这两个方法的用法及其在前端开发中的应用。
Object.values() 方法
Object.values() 方法用于获取对象的属性值,返回一个数组,数组中包含了对象所有的属性值,顺序与对象自身性质的枚举顺序相同。下面是 Object.values() 的使用示例:
const obj = {a: 'apple', b: 'banana', c: 'cherry'}; const values = Object.values(obj); console.log(values); // ['apple', 'banana', 'cherry']
Object.entries() 方法
Object.entries() 方法用于获取对象的所有键值对,返回一个二维数组,数组中包含了对象所有的键值对,顺序与对象自身性质的枚举顺序相同。下面是 Object.entries() 的使用示例:
const obj = {a: 'apple', b: 'banana', c: 'cherry'}; const entries = Object.entries(obj); console.log(entries); // [['a', 'apple'], ['b', 'banana'], ['c', 'cherry']]
应用场景
Object.values() 和 Object.entries() 方法在前端开发中有很多应用场景,下面是一些常见的例子:
1. 遍历对象的属性值
我们可以使用 Object.values() 遍历一个对象的所有属性值:
const obj = {a: 'apple', b: 'banana', c: 'cherry'}; for (const value of Object.values(obj)) { console.log(value); } // 输出结果:'apple' 'banana' 'cherry'
2. 遍历对象的键值对
我们可以使用 Object.entries() 遍历一个对象的所有键值对:
const obj = {a: 'apple', b: 'banana', c: 'cherry'}; for (const [key, value] of Object.entries(obj)) { console.log(key, value); } // 输出结果:'a' 'apple' 'b' 'banana' 'c' 'cherry'
3. 合并对象的属性
我们可以使用 Object.assign() 函数和 Object.entries() 方法将两个对象的属性合并到一个新的对象中:
const obj1 = {a: 1, b: 2}; const obj2 = {c: 3, d: 4}; const obj3 = Object.fromEntries([...Object.entries(obj1), ...Object.entries(obj2)]); console.log(obj3); // {a: 1, b: 2, c: 3, d: 4}
4. 筛选对象的属性
我们可以使用 Object.fromEntries() 函数和 Array.prototype.filter() 方法来实现筛选对象的属性:
const obj = {a: 'apple', b: 'banana', c: 'cherry'}; const filteredObj = Object.fromEntries(Object.entries(obj).filter(([key, value]) => key !== 'b')); console.log(filteredObj); // {a: 'apple', c: 'cherry'}
总结
Object.values() 和 Object.entries() 方法是 ECMAScript 2018 中新增的两个方法,用于获取对象的属性值和键值对数组。它们的应用场景很多,包括遍历对象、合并对象、筛选对象等,可以提升我们的开发效率。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/64f7d66af6b2d6eab3005cfc