📜  Javascript Object.fromEntries()(1)

📅  最后修改于: 2023-12-03 14:42:26.158000             🧑  作者: Mango

JavaScript Object.fromEntries()

Object.fromEntries() 是一个静态方法,用于将一个由键值对组成的数组转换为一个对象。这个方法在ECMAScript 2019标准中被引入,可以很方便地将数组转换为对象。

使用方法

Object.fromEntries() 方法接受一个由键值对组成的数组作为参数,并返回一个新的对象。

const entries = [['a', 1], ['b', 2], ['c', 3]];
const obj = Object.fromEntries(entries);

console.log(obj);
// 输出: {a: 1, b: 2, c: 3}

在上面的示例中,entries 是一个包含三个键值对的数组。Object.fromEntries(entries) 方法将这个数组转换为一个对象并赋值给变量 obj。 最终,console.log() 打印出了转换后的对象 {a: 1, b: 2, c: 3}

使用场景
将URL参数转换为对象

Object.fromEntries() 方法特别适合将URL参数字符串转换为对象。

const urlParams = new URLSearchParams('name=John&age=30&city=New+York');
const paramsObj = Object.fromEntries(urlParams);

console.log(paramsObj);
// 输出: { name: 'John', age: '30', city: 'New York' }

在上面的示例中,URLSearchParams 对象用于解析URL参数字符串。通过将这个对象传递给 Object.fromEntries() 方法,我们可以方便地将URL参数转换为对象。

简化数组操作

Object.fromEntries() 方法还可以用于简化对数组的操作。

例如,如果我们有一个包含键值对的数组,我们想要计算每个键对应值的总和。

const sales = [['apple', 5], ['banana', 10], ['orange', 7]];
const total = Object.fromEntries(sales).apple + Object.fromEntries(sales).banana + Object.fromEntries(sales).orange;

console.log(total);
// 输出: 22

在上面的示例中,我们通过 Object.fromEntries(sales) 将数组转换为一个对象。然后,我们可以直接通过访问对象的属性来计算每个键对应值的总和。

兼容性

Object.fromEntries() 方法在主流的现代浏览器中均可使用,包括Chrome,Firefox,Safari和Edge等。不支持它的浏览器可以通过使用polyfill来实现相同的功能。

总结

Object.fromEntries() 是一个非常实用的静态方法,可以将由键值对组成的数组转换为对象。它可以在许多场景下简化代码,并提供更优雅的解决方案。