Object.assign(...array) 的替代
Alternative of Object.assign(...array)
假设我们有对象数组。
调用 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
如何动态地做到这一点?
"spread syntax" 的上下文有重叠。我的意思是如何对两者使用扩展语法:
- 为数组传播元素。
- 为输出文字对象
{}
做继承
?
我尝试了 {...array}
并且它 returns {0:<array[0]>,1:<array[1]>,2:<array[2]>}
与 Object.assign(...array)
.[=20 的输出 不同 =]
您正在寻找
var obj = Object.assign({}, ...array)
创建一个新对象而不是改变 array[0]
。
在我看来,您正在寻找的方法是 .concat()
Returns 一个新数组,它是目标和源的合并。
我认为你正在寻找的方法,如上所述,是 .concat()
,它创建一个数组的副本并用另一个数组扩展它。
var a1 = [1,2,3], a2 = [];
a2 = a2.concat(a1);
// or ES5 shorten alternative
// var a1 = [1,2,3], a2 = [].concat(a1);
// or better ES6 shorten alternative
// a2 = [...a1];
a2.push(4);
console.log(a1, a2);
// a1 -> [1,2,3], a2 -> [1,2,3,4]
用数组对象分配对象:
var a = {
'name': 'Ajay'
}
var b = {
approvers: [{
id: '12'
}]
}
var c = Object.assign(a, b);
console.log(c);
假设我们有对象数组。
调用 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
如何动态地做到这一点?
"spread syntax" 的上下文有重叠。我的意思是如何对两者使用扩展语法:
- 为数组传播元素。
- 为输出文字对象
{}
做继承
?
我尝试了 {...array}
并且它 returns {0:<array[0]>,1:<array[1]>,2:<array[2]>}
与 Object.assign(...array)
.[=20 的输出 不同 =]
您正在寻找
var obj = Object.assign({}, ...array)
创建一个新对象而不是改变 array[0]
。
在我看来,您正在寻找的方法是 .concat()
Returns 一个新数组,它是目标和源的合并。
我认为你正在寻找的方法,如上所述,是 .concat()
,它创建一个数组的副本并用另一个数组扩展它。
var a1 = [1,2,3], a2 = [];
a2 = a2.concat(a1);
// or ES5 shorten alternative
// var a1 = [1,2,3], a2 = [].concat(a1);
// or better ES6 shorten alternative
// a2 = [...a1];
a2.push(4);
console.log(a1, a2);
// a1 -> [1,2,3], a2 -> [1,2,3,4]
用数组对象分配对象:
var a = {
'name': 'Ajay'
}
var b = {
approvers: [{
id: '12'
}]
}
var c = Object.assign(a, b);
console.log(c);