在ES10中,引入了一个新的对象方法 Object.fromEntries()
。该方法功能是将一个键值对的迭代器转换为一个对象。
我们先来看一下方法的基本语法:
Object.fromEntries(iterable)
可迭代对象(Iterable)是一个拥有迭代器(Iterator)的对象。常见的可迭代对象如Array
、Map
、Set
、String
等。很明显,该方法参数只能是可迭代的对象。
Object.fromEntries() 的使用
Object.fromEntries()
方法可以将由键值对构成的数组或Map对象,转换成普通对象。例如:
const map = new Map([ ['foo', 'bar'], ['baz', 42] ]); const obj = Object.fromEntries(map); console.log(obj); // { foo: "bar", baz: 42 }
可以看到,将一个 Map 对象转换成一个对象,其键值对就变成了对象中的键值对。
除了 Map 对象之外,也可以将数组中的键值对转换成对象,例如:
const arr = [['name', 'john'], ['age', 20], ['location', 'USA']]; const obj = Object.fromEntries(arr); console.log(obj); // {name: "john", age: 20, location: "USA"}
通过将一个由键值对数组构成的数组转换为一个对象,可以方便地对这些数据进行操作。
Object.fromEntries() 与 Object.entries() 的差异
Object.entries()
方法返回了一个对象的键值对数组。而 Object.fromEntries()
方法则返回相反的结果,将一个包含键值对的数组或Map对象转换成一个对象。
举个例子:
-- -------------------- ---- ------- ----- --- - --- -- -- --- ----- ------- - -------------------- --------------------- -- ------ --- ----- --- ----- ------ - ---------------------------- -------------------- -- --- -- -- --
我们可以看到,通过 Object.entries()
方法将对象转换成键值对数组,对这个数组进行操作,在使用 Object.fromEntries()
方法转换成对象,就相当于得到原来的对象。
推荐使用场景
Object.fromEntries()
方法非常适合用于将一些键值对数据的操作结果,转换成一个对象。例如从服务器返回数据,将数据进行格式化后,转换成一个键值对数组并将其转换为对象。
下面是一个简单的例子,通过将一个包含键值对数组转换为对象,来统计数组中每个元素出现的次数:
-- -------------------- ---- ------- ----- --- - --- -- -- -- -- -- --- ----- ----- - ---------------- ---- -- - -- ---- -- ---- - ----------- - ---- - -------- - -- - ------ ---- -- ---- ----- --- - ---------------------- ----------------- -- ------ --- ----- --- ----- --- ----- --- ----- --- ----- ------ - ------------------------ -------------------- -- --- -- -- -- -- -- -- -- -- --
通过这个例子我们可以看到,将一个包含键值对数组转换成对象,可以更方便地处理一些数据,并可以进行深入的操作。
总结
在 ES10 中,Object.fromEntries()
方法是一个非常实用的工具,它可以方便地将一个由键值对构成的数组或者 Map 对象转换成普通对象。在一些键值对数组的操作中,使用该方法可以非常方便地进行数据的处理和操作。
以上就是 Object.fromEntries()
方法的介绍和推荐使用场景,它的学习和使用我们相信对于前端开发者来说必将大有帮助。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/64d1e6dcb5eee0b52593d5a2