Object.fromEntries是什么用法
时间: 2024-05-12 22:20:41 浏览: 11
Object.fromEntries() 方法接收一个键值对数组,然后返回一个新的对象,该对象由这些键值对组成。每个键值对都必须是一个数组,其中第一个元素是键,第二个元素是值。这个方法可以用来将一个键值对数组转换成对象,或者从 Map 对象中创建对象。例如:
```javascript
const entries = [['a', 1], ['b', 2], ['c', 3]];
const obj = Object.fromEntries(entries);
console.log(obj); // {a: 1, b: 2, c: 3}
```
另外,这个方法可以与 Object.entries() 方法一起使用,可以将一个对象转换成键值对数组,然后再转换成新的对象。例如:
```javascript
const obj = {a: 1, b: 2, c: 3};
const entries = Object.entries(obj);
const newObj = Object.fromEntries(entries);
console.log(newObj); // {a: 1, b: 2, c: 3}
```
相关问题
Object.fromEntries()和Object.assign有什么区别
Object.fromEntries()和Object.assign()是两个用于处理对象的方法,它们有一些区别。
1. 功能不同:
- Object.fromEntries()方法是ES2019引入的新方法,用于将键值对数组转换为对象。它接收一个键值对数组作为参数,并返回一个新对象,该对象由数组中的键值对组成。
- Object.assign()方法用于将一个或多个源对象的属性复制到目标对象。它接收一个目标对象和一个或多个源对象作为参数,并将源对象的属性复制到目标对象中。
2. 处理方式不同:
- Object.fromEntries()使用键值对数组来创建对象,其中数组的每个元素是一个包含键和值的数组。这种方式更直观和简洁。
- Object.assign()通过复制源对象的属性值来创建新对象,如果有重复的属性,则后面的属性值会覆盖前面的属性值。
3. 键名处理不同:
- Object.fromEntries()会将数组中的键名作为字符串处理。即使键名是数字或其他类型,也会被转换为字符串键。
- Object.assign()会保留源对象的原始键类型。如果键名是数字或Symbol类型,则保持不变。
示例代码:
```javascript
// 使用 Object.fromEntries()
const entries = [['name', 'John'], ['age', 30]];
const obj1 = Object.fromEntries(entries);
console.log(obj1); // { name: 'John', age: 30 }
// 使用 Object.assign()
const source = { name: 'John' };
const obj2 = Object.assign({}, source);
console.log(obj2); // { name: 'John' }
```
相关问题:
1. Object.fromEntries()方法在什么情况下特别有用?
2. Object.assign()方法的属性复制顺序是怎样的?
3. 如何使用Object.assign()方法合并多个对象?
4. Object.fromEntries()方法可以用于对象深拷贝吗?如果不能,应该如何实现对象的深拷贝?
Object.fromEntries
`Object.fromEntries` 是一个 JavaScript 方法,用于将由键值对组成的数组转换为对象。它接受一个数组作为参数,该数组包含多个键值对,然后返回一个对象,该对象的属性由键值对数组中的键和值组成。
例如,如果我们有一个包含键值对数组的变量 `entries`,我们可以使用 `Object.fromEntries(entries)` 将其转换为对象。
以下是一个示例,将一个键值对数组转换为对象:
```
const entries = [['name', 'John'], ['age', 30], ['city', 'New York']];
const person = Object.fromEntries(entries);
console.log(person);
// 输出: { name: 'John', age: 30, city: 'New York' }
```
在这个例子中,`entries` 是一个由多个键值对数组组成的数组。我们使用 `Object.fromEntries(entries)` 将其转换为一个对象 `person`,该对象包含三个属性 `name`,`age` 和 `city`,每个属性的值都来自于对应键值对数组的值。