假设我们有对象数组。
调用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/