在 ES9 中,引入了一个新的静态方法 Object.fromEntries
,它可以将一个键值对数组转化为一个对象。
什么是键值对数组?
键值对数组指的是由一组键值对组成的数组,其中每个键值对表示一个属性及其对应值,如下面的例子:
const arr = [ ['name', 'John'], ['age', 25], ['gender', 'male'] ];
在上面的数组中,每个子数组的第一个值表示属性名,第二个值表示属性对应的值。该数组等价于下面的对象:
const obj = { name: 'John', age: 25, gender: 'male' };
Object.fromEntries 的用法
使用 Object.fromEntries
方法,可以将键值对数组转换为对象,如下所示:
// javascriptcn.com 代码示例 const arr = [ ['name', 'John'], ['age', 25], ['gender', 'male'] ]; const obj = Object.fromEntries(arr); console.log(obj); // 输出:{ name: 'John', age: 25, gender: 'male' }
实践示例
在实际应用中,我们可能需要将一个对象转换为键值对数组进行操作,再将其转换回对象。下面是一个示例,将一个对象的属性值乘以 2:
// javascriptcn.com 代码示例 const obj = { name: 'John', age: 25, gender: 'male' }; const arr = Object.entries(obj).map(([key, val]) => [key, val * 2]); const newObj = Object.fromEntries(arr); console.log(newObj); // 输出:{ name: 'John', age: 50, gender: 'male' }
在上面的示例中,Object.entries
方法将对象转换成键值对数组,然后使用 map
方法对每个子数组进行操作,最后再使用 Object.fromEntries
方法转换回对象。
总结
Object.fromEntries
可以将键值对数组转化成对象,常用于将对象转换为数组进行操作或将数组转为对象。其语法如下:
Object.fromEntries(iterable)
其中 iterable
表示可迭代对象,由一组键值对数组组成。
来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/654b0b897d4982a6eb4fadb2