在 JavaScript 的 ES10 版本中,Object.fromEntries() 方法的出现使得在生成新对象时更加方便快捷。本文将详细介绍 Object.fromEntries() 方法的使用方法与指导意义,并附带实用的示例代码,希望能够帮助大家更好地理解和应用该方法。
什么是 Object.fromEntries() 方法?
Object.fromEntries() 方法是在 ES10 中新增加的一个实例方法。该方法可以将一个由键值对组成的数组转化为一个新对象,其中每个键值对对应于对象的一个属性值。
该方法以一个键值对数组作为参数,数组中的每个元素都必须是一个数组,其中第一个元素作为对象属性的键,第二个元素作为对应属性的值。
使用方法
以下是 Object.fromEntries() 方法的使用方法,假设有以下的键值对数组:
const keyValueArray = [ ['apple', 1], ['orange', 2], ['banana', 3] ];
可以使用 Object.fromEntries() 方法将该数组转化为一个新对象,如下:
const keyValueObject = Object.fromEntries(keyValueArray); console.log(keyValueObject); // {apple: 1, orange: 2, banana: 3}
在该示例中,键值对数组包含三个元素,每个元素都是一个数组。使用 Object.fromEntries() 方法将其转化为一个新对象,其中数组中的第一个元素作为对象属性的键,第二个元素作为对应属性的值。最终生成的新对象包含了三个属性,分别为 apple、orange 和 banana,其对应的属性值分别为 1、2 和 3。
深入理解 Object.fromEntries() 方法
Object.fromEntries() 方法在实际应用中有以下几个优点:
更加方便快捷地生成新对象:使用该方法可以将一个由键值对组成的数组转化为一个新对象。
可以轻松实现对象的反转:如果有一个对象需要进行反转,即将对象的键和值互换位置,也可以使用 Object.fromEntries() 方法来实现。
可以将 Map 转换为对象:在 Map 和对象之间进行转换时, Object.fromEntries() 方法可以实现 Map 转化为对象。
-- -------------------- ---- ------- ----- --- - --- ----- --------- --- ---------- --- ---------- -- --- ----- --- - ------------------------ ----------------- -- ------- -- ------- -- ------- --
在该示例中,定义了一个 Map 对象,使用 Object.fromEntries() 方法可以将其转化为一个新对象。由于 Map 对象中同样保存了键值对,因此可以通过从 Map 中读取键值对的方式来生成新对象。
示例代码
以下是几个使用 Object.fromEntries() 方法的示例代码,可以按需使用:
- 对象属性反转
-- -------------------- ---- ------- ----- ------- - - ------ ---- ------- ------ ---- -------- ------ ---- ------ -- ----- -------- - ------------------- -------------------------------- --- -- --- --- -- ----------------------
在该示例中,使用 Object.entries() 方法将原始对象的键值对转化为数组,并使用 map() 方法将键和值互换的位置。使用 Object.fromEntries() 方法将新数组转化为一个新对象,即为反转后的结果。
- 使用 Map 转换为对象
-- -------------------- ---- ------- ----- --- - --- ----- --------- --- ---------- --- ---------- -- --- ----- --- - ------------------------ -----------------
在该示例中,创建一个 Map 对象并添加若干个键值对,然后使用 Object.fromEntries() 方法将 Map 转化为对象。
- 多个数组合并为一个对象
const prices = [9.99, 1.5, 19.99, 49.99]; const products = ['item1', 'item2', 'item3', 'item4']; const items = Object.fromEntries( products.map((_, i) => [products[i], prices[i]]) ); console.log(items);
在该示例中,使用 map() 方法将多个数组合并为一个键值对数组,并使用 Object.fromEntries() 方法将新数组转化为一个新对象。
总结
Object.fromEntries() 方法是 ES10 中比较实用的一个实例方法,可以将一个由键值对组成的数组转化为一个新对象,并且还可以应用于对象属性反转、将 Map 转换为对象,以及多个数组合并为一个对象等场景。在实际开发中,掌握 Object.fromEntries() 方法的使用方法非常有用,可以在生成新对象时更加快捷方便。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/654db21b7d4982a6eb71d75d