在前端开发中,我们经常需要创建新的对象,这时候就需要用到 Object.assign() 方法。然而,ES8 中提供了一种更加简洁、高效的方式来创建新对象,那就是 Object.fromEntries()。
Object.assign() 的缺陷
在使用 Object.assign() 方法创建新对象时,我们需要传入一个或多个源对象,然后将它们合并到目标对象中。例如:
const obj1 = { a: 1, b: 2 }; const obj2 = { c: 3, d: 4 }; const obj3 = Object.assign({}, obj1, obj2); console.log(obj3); // { a: 1, b: 2, c: 3, d: 4 }
然而,Object.assign() 方法有一个缺陷,那就是它不能直接将数组转换为对象。例如:
const arr = [['a', 1], ['b', 2]]; const obj = Object.assign({}, arr); console.log(obj); // { '0': [ 'a', 1 ], '1': [ 'b', 2 ] }
这时候,Object.fromEntries() 就可以帮助我们解决这个问题。
Object.fromEntries() 的用法
Object.fromEntries() 方法接收一个键值对数组,然后将它们转换为一个新的对象。例如:
const arr = [['a', 1], ['b', 2]]; const obj = Object.fromEntries(arr); console.log(obj); // { a: 1, b: 2 }
可以看到,这种方式创建对象更加简洁、高效,而且可以直接将数组转换为对象。
使用 Object.fromEntries() 的示例代码
下面是一个使用 Object.fromEntries() 方法创建新对象的示例代码:
const arr = [['a', 1], ['b', 2]]; const obj = Object.fromEntries(arr); console.log(obj); // { a: 1, b: 2 }
总结
在前端开发中,Object.assign() 方法是非常常用的一个方法,但它有一个缺陷,就是不能直接将数组转换为对象。而 Object.fromEntries() 方法则可以帮助我们解决这个问题,而且它更加简洁、高效。因此,在实际开发中,我们可以优先考虑使用 Object.fromEntries() 方法来创建新对象。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/65c87500add4f0e0ff246323