Object.fromEntries()
Baseline
Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020.
Phương thức tĩnh Object.fromEntries() chuyển đổi một danh sách các cặp khóa-giá trị thành một đối tượng.
Try it
const entries = new Map([
["foo", "bar"],
["baz", 42],
]);
const obj = Object.fromEntries(entries);
console.log(obj);
// Expected output: Object { foo: "bar", baz: 42 }
Cú pháp
Object.fromEntries(iterable)
Tham số
Giá trị trả về
Một đối tượng mới có các thuộc tính được cho bởi các entry của iterable.
Mô tả
Phương thức Object.fromEntries() nhận một danh sách các cặp khóa-giá trị và trả về một đối tượng mới có các thuộc tính được cho bởi các entry đó. Đối số iterable được kỳ vọng là một đối tượng triển khai phương thức [Symbol.iterator](). Phương thức này trả về một đối tượng iterator tạo ra các đối tượng giống mảng gồm hai phần tử. Phần tử đầu tiên là giá trị sẽ được dùng làm khóa thuộc tính, và phần tử thứ hai là giá trị để liên kết với khóa thuộc tính đó.
Object.fromEntries() thực hiện nghịch đảo của Object.entries(), ngoại trừ Object.entries() chỉ trả về các thuộc tính chuỗi-khóa, trong khi Object.fromEntries() cũng có thể tạo các thuộc tính symbol-khóa.
Note:
Không giống Array.from(), Object.fromEntries() không sử dụng giá trị của this, vì vậy việc gọi nó trên một hàm tạo khác sẽ không tạo ra các đối tượng của kiểu đó.
Ví dụ
>Chuyển đổi Map thành Object
Với Object.fromEntries, bạn có thể chuyển đổi từ Map sang Object:
const map = new Map([
["foo", "bar"],
["baz", 42],
]);
const obj = Object.fromEntries(map);
console.log(obj); // { foo: "bar", baz: 42 }
Chuyển đổi Array thành Object
Với Object.fromEntries, bạn có thể chuyển đổi từ Array sang Object:
const arr = [
["0", "a"],
["1", "b"],
["2", "c"],
];
const obj = Object.fromEntries(arr);
console.log(obj); // { 0: "a", 1: "b", 2: "c" }
Biến đổi đối tượng
Với Object.fromEntries, phương thức nghịch đảo Object.entries() và các phương thức thao tác mảng, bạn có thể biến đổi các đối tượng như sau:
const object1 = { a: 1, b: 2, c: 3 };
const object2 = Object.fromEntries(
Object.entries(object1).map(([key, val]) => [key, val * 2]),
);
console.log(object2);
// { a: 2, b: 4, c: 6 }
Đặc tả
| Specification |
|---|
| ECMAScript® 2027 Language Specification> # sec-object.fromentries> |