在 JavaScript 的编程中,我们经常需要将数组转为对象。在 ES5 和 ES6 中,我们可以使用一些方法来实现这一目的,如 Object.assign()
和解构赋值。但是,随着 ES10 的推出,我们现在有了一个新的函数 Object.fromEntries()
来帮助我们更加方便地实现数组转对象的操作。
Object.fromEntries() 函数简介
Object.fromEntries()
函数是 ES10 中新增加的一个函数。它可以将一个由键值对组成的二维数组(或类似数组对象)转为一个对象。这个函数接受一个参数,该参数是一个由键值对组成的数组或类似数组对象。
示例代码如下:
// javascriptcn.com 代码示例 const entries = [ ['foo', 'bar'], ['baz', 42] ]; const obj = Object.fromEntries(entries); console.log(obj); // Output: { foo: "bar", baz: 42 }
在这个示例代码中,entries
是一个由键值对组成的二维数组。我们将这个二维数组传递给 Object.fromEntries()
函数,这个函数返回了一个对象 obj
,对象的属性名和属性值就是原来的键值对的值。
Object.fromEntries() 函数的学习意义
虽然在以前,我们就可以使用其他的方法来实现数组的转换,但是使用 Object.fromEntries()
函数可以使这个过程更加简洁和方便。这个函数的出现也为我们提供了更多的选择,我们可以根据需要灵活地使用这个函数来实现我们的需求。
除了转换基础的数组转对象的需求之外,当我们需要反转一个对象的键值对时,也可以灵活使用这个函数。
Object.fromEntries() 函数应用示例
下面是一个实际应用的示例,使用 Object.fromEntries()
函数将包含一组数据的数组转为一个对象:
// javascriptcn.com 代码示例 const data = [ { id: 1, name: 'John' }, { id: 2, name: 'Jane' }, { id: 3, name: 'Jim' }, ]; const obj = Object.fromEntries( data.map(item => [item.id, item.name]) ); console.log(obj); // Output: { 1: 'John', 2: 'Jane', 3: 'Jim' }
在这个示例代码中,我们有一个包含一组数据的数组,需要将其转为一个对象。我们可以使用 map()
函数来遍历数组,将每一个数组项转为由键值对组成的二维数组。然后,我们将转化后的二维数组作为参数传递给 Object.fromEntries()
函数,该函数会将这些键值对的数组转换成一个对象。
总结
ES10 中新增加的 Object.fromEntries()
函数为我们提供了一种更加简便和灵活的方式来实现数组转换为对象的需求,与其他的方法相比,该函数更加简洁易懂,节省了我们的代码量。同时,可以根据需要灵活使用该函数来实现反转对象的键值对等操作,将会使我们的编码变得更加方便。
来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/65499a737d4982a6eb3cfe4b