我有两个数组,其中有相同数量的对象。我想获取每个数组的第一个对象,并将它们放在一个新数组中作为数组中的第一个对象。然后,我想继续使用以下对象。
var a = [{akey: 'something'}, {bkey: 'somethingelse'}];
var b = [{ckey: 'somethinghere'}, {dkey: 'somethingdiffrent'}];
//some-code-here to make the below part.
var newArray = [{akey: 'something', ckey: 'somethinghere'},
{bkey: 'somethingelse', dkey: 'somethingdiffrent'}];
因此,我仍然拥有旧数组中对象的数据,但在一个新数组中将两个新对象放在一起。 除了重复键,它们可以被覆盖,如下所示:
{aKey: 'data'} + {aKey: 'data'} whould just be {aKey: 'data'}
希望这是有道理的,数组长度相同,a.length = b.length,但对象可能在意义上有所不同。最终的数组将放在ng-repeat(角项目)上。
答案 0 :(得分:1)
您可以使用Object.assign
组合对象,并使用Array#map
映射数组。
var a = [{akey: 'something'}, {bkey: 'somethingelse'}, { foo: 'from a' }],
b = [{ckey: 'somethinghere'}, {dkey: 'somethingdiffrent'}, { foo: 'from b' }],
c = a.map(function (el, i) {
return Object.assign({}, el, b[i]);
});
console.log(c);
.as-console-wrapper { max-height: 100% !important; top: 0; }
如果您想{ foo: 'from a' }
,可以切换el
和b[i]
。
return Object.assign({}, b[i], el);
var a = [{akey: 'something'}, {bkey: 'somethingelse'}, { foo: 'from a' }],
b = [{ckey: 'somethinghere'}, {dkey: 'somethingdiffrent'}, { foo: 'from b' }],
c = a.map(function (el, i) {
return Object.assign({}, b[i], el);
});
console.log(c);
.as-console-wrapper { max-height: 100% !important; top: 0; }