使用Lodash按属性合并对象数组 [英] Merge Array of Objects by Property using Lodash
本文介绍了使用Lodash按属性合并对象数组的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有两个对象数组,表示具有标签和值的电子邮件地址:
I have two arrays of objects that represent email addresses that have a label and a value:
var original = [
{
label: 'private',
value: 'private@johndoe.com'
},
{
label: 'work',
value: 'work@johndoe.com'
}
];
var update = [
{
label: 'private',
value: 'me@johndoe.com'
},
{
label: 'school',
value: 'schhol@johndoe.com'
}
];
现在我想通过标签来比较和合并两个数组
字段,因此结果如下所示:
Now I want to compare and merge the two arrays by the label
field, so that the result would look like this:
var result = [
{
label: 'private',
value: 'me@johndoe.com'
},
{
label: 'work',
value: 'work@johndoe.com'
},
{
label: 'school',
value: 'schol@johndoe.com'
}
]
我该怎么办呢使用 lodash ?
推荐答案
_。unionBy()
:
此方法与_.union类似,不同之处在于它接受为每个数组的每个元素调用的iteratee,以生成计算唯一性的标准。 从值中出现的第一个数组中选择结果值。
var original = [
{ label: 'private', value: 'private@johndoe.com' },
{ label: 'work', value: 'work@johndoe.com' }
];
var update = [
{ label: 'private', value: 'me@johndoe.com' },
{ label: 'school', value: 'schol@johndoe.com' }
];
var result = _.unionBy(update, original, "label");
console.log(result);
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.15.0/lodash.min.js"></script>
这篇关于使用Lodash按属性合并对象数组的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文