Object.fromEntries()
方法把键值对列表转换为一个对象。
语法:
Object.fromEntries(entries);
类型声明:
interface Iterator<T, TReturn = any, TNext = undefined> {// NOTE: 'next' is defined using a tuple to ensure we report the correct assignability errors in all places.next(...args: [] | [TNext]): IteratorResult<T, TReturn>;return?(value?: TReturn): IteratorResult<T, TReturn>;throw?(e?: any): IteratorResult<T, TReturn>;}interface Iterable<T> {[Symbol.iterator](): Iterator<T>;}interface ObjectConstructor {fromEntries<T = any>(entries: Iterable<readonly [PropertyKey, T]>): { [k: string]: T };fromEntries(entries: Iterable<readonly any[]>): any;}
参数说明:
参数 | 说明 | 类型 |
---|---|---|
entries | 可实现可迭代协议的可迭代对象(例如 Array、Map 等) | iterable |
返回值:
返回一个由该迭代对象条目提供对应属性的新对象。
Object.fromEntries()
方法接收一个键值对的列表参数,并返回一个带有这些键值对的新对象。这个迭代参数应该是一个能够实现 @@iterator
方法的的对象,返回一个迭代器对象。它生成一个具有两个元素的类数组的对象,第一个元素是将用作属性键的值,第二个元素是与该属性键关联的值。
Object.fromEntries()
执行与 Object.entries()
互逆的操作。
const obj = { x: 42, y: 50 };const entries = Object.entries(obj);// -> [['x', 42], ['y', 50]];const result = Object.fromEntries(entries);// -> { x: 42, y: 50 }
const map1 = new Map([['big', 'small'],[1, 0],]);const geek = Object.fromEntries(map1);console.log(geek);// Output: { 1: 0, big: "small" }const map2 = new Map([['Geek1', 'Intern'],['stipend', 'Works basis'],]);const geek1 = Object.fromEntries(map2);console.log(geek1);// Output: { Geek1: "Intern", sitipend: "Works basis" }
const arr1 = [['big', 'small'],[1, 0],['a', 'z'],];const geek = Object.fromEntries(arr1);console.log(geek);// Output: { 1: 0, big: "small", a: "z" }const arr2 = [['Geek1', 'Intern'],['stipend', 'Works basis'],];const geek1 = Object.fromEntries(arr2);// Output: { Geek1: "Intern", stipend: "Works basis" }
const params = 'type=Get_the Value&geekno=34&paid=10';const searchParams = new URLSearchParams(params);console.log(Object.fromEntries(searchParams));// Output: { type: "Get_ Value", geekno: "34", paid: "10" }const object1 = { val1: 112, val2: 345, val3: 76 };const object2 = Object.fromEntries(Object.entries(object1).map(([key, val]) => [key, val * 3]));console.log(object2);// Output: { val1: 336, val2: 1035, val3: 228 }