gpt4 book ai didi

javascript - 使用 lodash 按属性合并 2 个排序的对象数组

转载 作者:行者123 更新时间:2023-11-29 16:46:39 26 4
gpt4 key购买 nike

我正在尝试将两个对象数组合并在一起。

我已经对对象数组进行了预排序,以便它们匹配,我只需要将属性推送到两个数组中的每个对象。

我认为 lodash 会给我一个比双 for 循环更简洁的解决方案,还是我应该只做一个普通的 JS 解决方案?

两个数组的例子:

[
{
provider: 'foo',
title: 'Title1'
},
{
provider: 'bar',
title: 'Title2'
}
]

[
{
all: '0',
novelty: '24'
},
{
all: '4',
novelty: '12'
}
]

它应该返回:

[
{
provider: 'foo',
title: 'Title1',
all: '0',
novelty: '24'
},
{
provider: 'bar',
title: 'Title2',
all: '4',
novelty: '12'
}
]

最佳答案

如果没有 lodash,你可以使用 Array.prototype.map()Object.assign() (或 angular.merge() 如果目标浏览器不支持分配):

var arr1 = [{
provider: 'foo',
title: 'Title1'
}, {
provider: 'bar',
title: 'Title2'
}];

var arr2 = [{
all: '0',
novelty: '24'
}, {
all: '4',
novelty: '12'
}];

var result = arr1.map(function(item, index) {
return Object.assign({}, item, arr2[index]);
});

console.log(result);

如果你想使用 lodash,请使用 _.zipWith()_.assign() :

var arr1 = [{
provider: 'foo',
title: 'Title1'
}, {
provider: 'bar',
title: 'Title2'
}];

var arr2 = [{
all: '0',
novelty: '24'
}, {
all: '4',
novelty: '12'
}];

var result = _.zipWith(arr1, arr2, function(a, b) {
return _.assign({}, a, b);
});

console.log(result);
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.16.4/lodash.min.js"></script>

关于javascript - 使用 lodash 按属性合并 2 个排序的对象数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40323110/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com