在 ES10 中新增了许多有用的方法,其中其中 Object.fromEntries 方法是一个非常实用的工具,它能够将由键值对数组构成的二维数组转换成一个新的对象,本文将介绍这个方法的应用技巧。
简介
Object.fromEntries 方法接受一个由键值对数组构成的二维数组作为参数,然后返回一个新的对象。其中,二维数组中的第一维代表的是键名,第二维代表的是键值。示例代码如下:
const arr = [['a', 1], ['b', 2], ['c', 3]]; const obj = Object.fromEntries(arr); console.log(obj); // 输出 { a: 1, b: 2, c: 3 }
应用技巧
将 Map 转化为对象
在 JavaScript 中,Map 和对象都能够存储键值对,但它们的使用场景不同,Map 主要用于较为复杂的数据结构,而对象则适用于简单的数据结构。因此,在实际开发中,我们可能需要将一个 Map 转换成为一个对象,这时候就可以使用 Object.fromEntries 方法。
const map = new Map([ ['name', 'Jack'], ['age', 21], ['sex', 'male'] ]); const obj = Object.fromEntries(map); console.log(obj); // 输出 { name: 'Jack', age: 21, sex: 'male' }
将对象的键值对顺序完全颠倒
有时候,我们需要将对象的键值对完全颠倒过来并组成一个新的对象,这时候就可以使用 Object.fromEntries 方法。具体实现方式是先将对象的键值对转化为数组并反转,再使用 Object.fromEntries 方法将其转化成新对象。
const obj = { name: 'Jack', age: 21, sex: 'male' }; const arr = Object.entries(obj).map(([key, value]) => [value, key]).reverse(); const result = Object.fromEntries(arr); console.log(result); // 输出 { Jack: 'name', 21: 'age', male: 'sex' }
去除对象中的空属性
有时候,我们需要将对象中的空属性去除,并返回一个新的对象,可以通过 Object.entries 方法和 Object.fromEntries 方法实现:
const obj = { name: 'Jack', age: '', sex: 'male' }; const result = Object.fromEntries( Object.entries(obj).filter(([key, value]) => value !== '') ); console.log(result); // 输出 { name: 'Jack', sex: 'male' }
总结
Object.fromEntries 方法是 ES10 新增的非常实用的工具,能够将由键值对数组构成的二维数组转换成一个新的对象,在实际开发中有着广泛的应用。本文对这个方法的应用技巧进行了介绍,相信能够对读者在实际开发中有所帮助。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6461d631968c7c53b032d418