我有两个数组,其中包含相同数量的对象。我想获取每个数组的第一个对象并将它们放在一个新数组中作为数组中的第一个对象。然后我想继续使用以下对象。
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( Angular 项目)上。
你可以使用 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; }