javascript - Object.assign(...array) 的替代方案

标签 javascript babeljs ecmascript-next

假设我们有对象数组。

调用Object.assign(...array)在索引为 i 的对象之间进行继承覆盖索引为 i-1 的对象中的现有属性

例如:

var array=[{interf:'IPerson',name:'Someone'},{clss:'Person',name:'Ahmed'},{student:true}];
console.log(
    Object.assign(...array) // Object.assign(array[0],array[1],array[2])
)

现在,使用 Babel 和建议的对象扩展语法,我们可以静态地执行此操作:

{...array[0],...array[1],...array[2]} // spread used for each object not for array

如何动态地做到这一点?

“扩展语法”的上下文存在重叠。我的意思是如何对两者使用扩展语法:

  • 用于数组传播元素。
  • 对于输出文字对象 {}进行继承

我试过{...array}它返回 {0:<array[0]>,1:<array[1]>,2:<array[2]>}这与 Object.assign(...array) 的输出相同.

最佳答案

您正在寻找

var obj = Object.assign({}, ...array)

创建一个新对象而不是改变array[0]

关于javascript - Object.assign(...array) 的替代方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38985624/

相关文章:

reactjs - 预设文件不允许导出对象

javascript - 要求未定义? Todd Motto Angular 1.5 入门教程

javascript - 关于 React-Mobx 中 Action 需求的问题

javascript - 引用 ES.next 静态类属性的正确方法是什么?

javascript - d3 SVG 文本元素背景颜色与 getBBox() 顺序错误

javascript - 加载的 Ajax 页面表中的 Codeigniter 分页

javascript - 如何创建 HTML5 播放列表循环功能

javascript - 如何将 javascript 变量发布到 ASP.net MVC 模型?

reactjs - Webpack 生产版本 : Unexpected token

javascript - 解构传播 Import ES6