ES10 新语法:Object.fromEntries() 方法详解及使用示例

在现代 JavaScript 开发中,使用最多的语言版本是 ES6,其中包含了很多强大的语法和新特性。而 ES10(ES2019)则是其后续版本,为 JavaScript 开发带来了更多有用的新特性。其中一个非常实用的新方法是 Object.fromEntries(),它可以将一个由键值对数组转换为一个对象。在本文中,我们将详细介绍 Object.fromEntries() 方法的语法和使用方法,并提供一些实用的示例。

Object.fromEntries() 方法简介

Object.fromEntries() 方法可以将一个由键值对数组转换为一个对象。通俗来讲,就是将一个二维数组转换为一个对象,其中第一维数组作为对象的键,第二维数组作为对象的值。

Object.fromEntries() 方法语法

Object.fromEntries() 方法的语法如下:

Object.fromEntries(iterable)

其中,iterable 表示一个可迭代的键值对数组,例如 [[key1, value1], [key2, value2]]。

Object.fromEntries() 方法使用示例

下面将给出一些 Object.fromEntries() 方法的使用示例。

示例 1:将键值对数组转换为对象

假设有一个键值对数组 arr,其内容为 [['foo', 1], ['bar', 2]],如何将其转换为一个对象呢?可以使用 Object.fromEntries() 方法,代码如下:

const arr = [['foo', 1], ['bar', 2]];
const obj = Object.fromEntries(arr);
console.log(obj); // {foo: 1, bar: 2}

说明:将 arr 数组转换为对象时,键为 arr 数组中的第一维,值为第二维。

示例 2:过滤对象中的属性

假设有一个对象 obj,如何过滤掉其中符合某些条件的属性呢?可以先将对象转换为数组,然后使用 filter() 方法进行过滤,最后再将过滤后的数组转换为对象,代码如下:

const obj = {
  foo: 1,
  bar: 2,
  baz: 3
};
const arr = Object.entries(obj).filter(([key, value]) => value > 1);
const filteredObj = Object.fromEntries(arr);
console.log(filteredObj); // {bar: 2, baz: 3}

说明:将 obj 对象转换为数组时,键为对象的属性,值为对象的属性值,然后使用 filter() 方法进行过滤,最后再将过滤后的数组转换为对象。

示例 3:将 Map 转换为对象

假设有一个 Map 对象,如何将其转换为一个对象呢?可以使用 Object.fromEntries() 方法,先将 Map 对象转换为一个由键值对数组对象,然后再使用 Object.fromEntries() 方法将其转换为一个对象,代码如下:

const map = new Map([['foo', 1], ['bar', 2]]);
const obj = Object.fromEntries(map);
console.log(obj); // {foo: 1, bar: 2}

说明:将 map 对象转换为数组时,键为 Map 对象中的键,值为对应的属性值,然后再使用 Object.fromEntries() 方法将其转换为对象。

示例 4:将 URLSearchParams 转换为对象

假设有一个 URLSearchParams 对象,如何将其转换为一个对象呢?可以使用 Object.fromEntries() 方法,先将 URLSearchParams 对象转换为一个由键值对数组对象,然后再使用 Object.fromEntries() 方法将其转换为一个对象,代码如下:

const params = new URLSearchParams('foo=1&bar=2');
const obj = Object.fromEntries(params);
console.log(obj); // {foo: "1", bar: "2"}

说明:将 params 对象转换为数组时,键为 URLSearchParams 对象中的键,值为对应的属性值,然后再使用 Object.fromEntries() 方法将其转换为对象。

总结

Object.fromEntries() 方法是 ES10 中一个非常实用的新方法,可以将一个由键值对数组转换为一个对象。本文对 Object.fromEntries() 方法的语法和使用方法进行了详细介绍,并提供了一些实用的示例。在实际开发中,可以将该方法应用于对象和数组的转换、过滤对象属性等操作中,希望本文能够帮助读者更好地理解和掌握 Object.fromEntries() 方法。

来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/659382d3eb4cecbf2d83c1a0


纠错反馈