javascript - 两个带有对象的数组成为具有相同长度的新数组,但所有数据都来自原始数组

标签 javascript angularjs arrays node.js object

<分区>

我有两个数组,其中包含相同数量的对象。我想获取每个数组的第一个对象并将它们放在一个新数组中作为数组中的第一个对象。然后我想继续使用以下对象。

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' },你可以切换elb[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; }

关于javascript - 两个带有对象的数组成为具有相同长度的新数组,但所有数据都来自原始数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41875541/

相关文章:

javascript - 地理位置未捕获类型错误 : Cannot read property 'coords' of undefined

javascript - 在 AngularJS 中分离 Controller

JavaScript Promise 和 this 关键字

C 中的常量数组

C++ 将数组复制到指针参数

javascript - 验证选择字段

javascript - 页面上有多个 SVG

javascript - 卡住了nodejs回调

angularjs - Protractor 找不到元素

Java - 如何检查数组的值是否包含指定值作为属性