📜  object.fromentries 打字稿(1)

📅  最后修改于: 2023-12-03 15:18:05.253000             🧑  作者: Mango

介绍object.fromEntries()方法

1. 简介

Object.fromEntries()方法是ECMAScript 2019提出的新特性,可以将一个二维数组转换为一个对象。该方法接受一个二维数组作为参数,并将其转换为一个键值对构成的对象。

2. 语法
Object.fromEntries(iterable)

参数:

  • iterable:必需,一个可迭代对象,其元素格式为[键,值]。

返回值:

  • 一个新的对象。
3. 使用示例
示例1
const arr = [['name', 'Jack'], ['age', 20], ['gender', 'male']];
const obj = Object.fromEntries(arr);
console.log(obj);  // { name: 'Jack', age: 20, gender: 'male' }

上述代码中,arr是一个由多个键值对构成的二维数组,通过Object.fromEntries()方法,我们可以将其转换为一个键值对构成的对象。

示例2
const arr = [[Symbol('name'), 'Jack'], [Symbol('age'), 20]];
const obj = Object.fromEntries(arr);
console.log(obj);  // { [Symbol(name)]: 'Jack', [Symbol(age)]: 20 }

在示例2中,我们使用了Symbol类型的键来创建一个新对象。可以看出,Object.fromEntries()方法同样适用于Symbol类型的键。

4. 注意事项

如果迭代器中存在重复的键,则后面的键值对会覆盖前面的。

const arr = [['name', 'Jack'], ['age', 20], ['name', 'Tom']];
const obj = Object.fromEntries(arr);
console.log(obj);  // { name: 'Tom', age: 20 }

上述代码中,重复的name键后面的键值对覆盖了前面的键值对。因此,最终结果中只存在一个name键。

5. 浏览器支持情况

Object.fromEntries()方法是ECMAScript 2019提出的新特性,在部分浏览器中还未得到完全支持。

  • Firefox:已支持。
  • Chrome:已支持。
  • Safari:12.1以上版本支持。
  • Opera:已支持。
  • Edge:79以上版本支持。