如何在javascript中按ID合并多个对象数组? [英] How to merge multiple array of object by ID in javascript?
本文介绍了如何在javascript中按ID合并多个对象数组?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我想将 4 个对象数组合并为一个数组
I want to merge 4 array of object into one array
例如: 4 个数组如
var arr1 =[
{ memberID : "81fs", RatingCW:4.5},
{ memberID : "80fs", RatingCW:4},
{ memberID : "82fs", RatingCW:5 },
{ memberID : "83fs", RatingCW:3},
{ memberID : "84fs", RatingCW:4.7}
];
var arr2 =[
{ memberID : "80fs", ratingWW: 4},
{ memberID : "81fs", ratingWW: 4.5},
{ memberID : "83fs", ratingWW: 3},
{ memberID : "82fs", ratingWW: 5},
{ memberID : "84fs", ratingWW: 3.5}
];
var arr3 = [
{ memberID : "80fs", incoCW:4},
{ memberID : "81fs", incoCW:4.5},
{ memberID : "82fs", incoCW:5},
{ memberID : "83fs", incoCW:3},
{ memberID : "84fs", incoCW:4.5}
];
var arr4 = [
{ memberID : "80fs", incoWW:3},
{ memberID : "81fs", incoWW:2.5 },
{ memberID : "82fs", incoWW:5 },
{ memberID : "83fs", incoWW:3 },
{ memberID : "84fs", incoWW:6.5 }
];
和预期数组如:
var finalArr = [
{ memberID : "80fs", RatingCW:4,ratingWW: 4, incoCW:4, incoWW:3},
{ memberID : "81fs", RatingCW:4.5,ratingWW: 4.5, incoCW:4.5, incoWW:2.5 },
{ memberID : "82fs", RatingCW:5,ratingWW: 5, incoCW:5, incoWW:5 },
{ memberID : "83fs", RatingCW:3,ratingWW: 3, incoCW:3, incoWW:3 },
{ memberID : "84fs", RatingCW:4.7,ratingWW: 3.5, incoCW:4.5, incoWW:6.5 }
];
使用 lodash 或普通 javascript 合并的最佳方式是什么?
What is the best way to merge using lodash or normal javascript?
推荐答案
使用 lodash,我认为可读性更高.
With lodash, a lot more readable I think.
var arr1 = [{"memberID":"81fs","RatingCW":4.5},{"memberID":"80fs","RatingCW":4},{"memberID":"82fs","RatingCW":5},{"memberID":"83fs","RatingCW":3},{"memberID":"84fs","RatingCW":4.7}],
arr2 = [{"memberID":"80fs","ratingWW":4},{"memberID":"81fs","ratingWW":4.5},{"memberID":"83fs","ratingWW":3},{"memberID":"82fs","ratingWW":5},{"memberID":"84fs","ratingWW":3.5}],
arr3 = [{"memberID":"80fs","incoCW":4},{"memberID":"81fs","incoCW":4.5},{"memberID":"82fs","incoCW":5},{"memberID":"83fs","incoCW":3},{"memberID":"84fs","incoCW":4.5}],
arr4 = [{"memberID":"80fs","incoWW":3},{"memberID":"81fs","incoWW":2.5},{"memberID":"82fs","incoWW":5},{"memberID":"83fs","incoWW":3},{"memberID":"84fs","incoWW":6.5}];
var merged = _(arr1)
.concat(arr2, arr3, arr4)
.groupBy("memberID")
.map(_.spread(_.merge))
.value();
console.log(merged);
<script src="https://cdn.jsdelivr.net/lodash/4.13.1/lodash.min.js"></script>
这是代码笔:http://codepen.io/kuhnroyal/pen/Wxzdmw
这篇关于如何在javascript中按ID合并多个对象数组?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文