📅  最后修改于: 2023-12-03 15:18:05.253000             🧑  作者: Mango
Object.fromEntries()
方法是ECMAScript 2019提出的新特性,可以将一个二维数组转换为一个对象。该方法接受一个二维数组作为参数,并将其转换为一个键值对构成的对象。
Object.fromEntries(iterable)
参数:
iterable
:必需,一个可迭代对象,其元素格式为[键,值]。返回值:
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()
方法,我们可以将其转换为一个键值对构成的对象。
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类型的键。
如果迭代器中存在重复的键,则后面的键值对会覆盖前面的。
const arr = [['name', 'Jack'], ['age', 20], ['name', 'Tom']];
const obj = Object.fromEntries(arr);
console.log(obj); // { name: 'Tom', age: 20 }
上述代码中,重复的name
键后面的键值对覆盖了前面的键值对。因此,最终结果中只存在一个name
键。
Object.fromEntries()
方法是ECMAScript 2019提出的新特性,在部分浏览器中还未得到完全支持。