在 ECMAScript 2019 中,JavaScript 引入了一个新的方法:fromEntries()
,它可以将一个对象转换成一个键值对数组。这个方法是十分实用的,可以用于处理一些实际开发场景。
了解 fromEntries() 方法
fromEntries()
方法用于将一个包含键值对的可迭代对象(iterable)转化为一个对象。它接受一个可迭代对象作为参数,并返回一个包含键值对的新数组。
这里的可迭代对象可以是任何实现了 Symbol.iterator
解构赋值方法的对象,比如 Map
或 Object.entries()
方法产生的数组。
该方法的语法如下:
Object.fromEntries(iterable)
其中,iterable
是一个可迭代对象,它包含一组键值对。
用例
假设有如下对象:
const obj = { a: 1, b: 2, c: 3 }
现在我们想把这个对象转化为一个包含键值对的数组。直接使用 Object.entries(obj)
方法可以得到 [ [ 'a', 1 ], [ 'b', 2 ], [ 'c', 3 ] ]
这样的数组,但我们更希望得到如下形式的数组:
[ { key: 'a', value: 1 }, { key: 'b', value: 2 }, { key: 'c', value: 3 } ]
我们可以使用 fromEntries()
方法来实现:
const arr = Object.entries(obj).map(([key, value]) => ({ key, value }));
这里我们使用 Object.entries(obj)
方法获取键值对数组,然后通过 map()
方法将每个键值对转化为我们需要的格式。
除了将对象转换为数组,fromEntries()
方法还可以用于将键值对数据转换为对象。比如,我们有如下数据:
const arr = [ ['a', 1], ['b', 2], ['c', 3] ];
我们可以使用 fromEntries()
方法将其转换为对象:
const obj = Object.fromEntries(arr);
这样,我们就得到了如下对象:
{ a: 1, b: 2, c: 3 }
总结
fromEntries()
方法是 ECMAScript 2019 中新增的一个方法,它可以将一个对象转化为数组,并且可以方便地将键值对数据转换为对象。在实际开发中,它可以解决一些常见问题,比如将对象转换为我们需要的键值对格式。需要注意的是,该方法是一个较新的特性,需要在兼容的环境下使用。
示例代码
-- -------------------- ---- ------- ---------------- ----- --- - - -- -- -- -- -- - - ----- --- - ------------------------------ ------- -- -- ---- ----- ---- ----------------- -- ---- - ---- ---- ------ - -- - ---- ---- ------ - -- - ---- ---- ------ - - - ------------- ----- ---- - - ----- --- ----- --- ----- -- -- ----- ---- - ------------------------- ------------------ -- ---- -- -- -- -- -- - -
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/64e8826cf6b2d6eab340e10e