是否有一种直接方法可以从两个不同的数组中根据对象的属性将不同的对象放入一个新数组?
当前循环遍历第一个数组,然后与第二个数组中的每个对象进行比较以维护一个计数器并在不同时插入新数组。
var newArray = [];
_.each(firstArray, function(item) { //loop items in 1st []
var count = 0;
_.each(secondArray, function(secondItem) {
if(secondItem.property = item.property) {
count++
}
}
if(count == 0) newArray.push(item); //push distinct item into new []
}
示例数据:
var array1 = [{id:1, busNum: "1234"}, {id:2, busNum:"4567"}]
var array2 = [{id:1, busNum: "2344"}, {id:2, busNum:"1234"}]
想要消除公共(public)巴士(具有相同巴士编号的)
var newArray = [{id:2, bus:"4567"}, {id:1, bus:"2344"]
最佳答案
您可以使用 _.xorBy
作为 symmetric difference。
var array1 = [{id:1, busNum: "1234"}, {id:2, busNum:"4567"}],
array2 = [{id:1, busNum: "2344"}, {id:2, busNum:"1234"}],
result = _.xorBy(array1, array2, 'busNum');
console.log(result);
.as-console-wrapper { max-height: 100% !important; top: 0; }
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.15.0/lodash.min.js"></script>
关于javascript - 基于属性的两个数组之间的不同对象 - lodash,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43285799/