我有两个数组需要合并:
阵列1:
[ { 'Issues in Version': 'PPW-1075', 'Issues In Progress': '' },
{ 'Issues in Version': 'PPW-1076', 'Issues In Progress': '' },
{ 'Issues in Version': 'PPW-1077', 'Issues In Progress': '' },
{ 'Issues in Version': 'PPW-1078', 'Issues In Progress': '' },
{ 'Issues in Version': 'PPW-1079', 'Issues In Progress': '' },
{ 'Issues in Version': 'PPW-1080', 'Issues In Progress': '' },
{ 'Issues in Version': 'PPW-1081', 'Issues In Progress': '' },
{ 'Issues in Version': 'PPW-1123', 'Issues In Progress': '' },
{ 'Issues in Version': 'PPW-1133', 'Issues In Progress': '' },
{ 'Issues in Version': 'PPW-1134', 'Issues In Progress': '' } ]
阵列2:
[{ 'Issues In Version': '', 'Issues In Progress': 'PPW-1123' },
{ 'Issues In Version': '', 'Issues In Progress': 'PPW-1133' },
{ 'Issues In Version': '', 'Issues In Progress': 'PPW-1134' } ]
我如何合并这些数组以给出以下内容:
[ { 'Issues in Version': 'PPW-1075', 'Issues In Progress': 'PPW-1123' },
{ 'Issues in Version': 'PPW-1076', 'Issues In Progress': 'PPW-1133' },
{ 'Issues in Version': 'PPW-1077', 'Issues In Progress': 'PPW-1134' },
{ 'Issues in Version': 'PPW-1078', 'Issues In Progress': '' },
{ 'Issues in Version': 'PPW-1079', 'Issues In Progress': '' },
{ 'Issues in Version': 'PPW-1080', 'Issues In Progress': '' },
{ 'Issues in Version': 'PPW-1081', 'Issues In Progress': '' },
{ 'Issues in Version': 'PPW-1123', 'Issues In Progress': '' },
{ 'Issues in Version': 'PPW-1133', 'Issues In Progress': '' },
{ 'Issues in Version': 'PPW-1134', 'Issues In Progress': '' } ]
最佳答案
Yocu可以生成一个新数组,检查属性是否具有匹配属性的真实值。
var array1 =[ { 'Issues In Version': 'PPW-1075', 'Issues In Progress': '' }, { 'Issues In Version': 'PPW-1076', 'Issues In Progress': '' }, { 'Issues In Version': 'PPW-1077', 'Issues In Progress': '' }, { 'Issues In Version': 'PPW-1078', 'Issues In Progress': '' }, { 'Issues In Version': 'PPW-1079', 'Issues In Progress': '' }, { 'Issues In Version': 'PPW-1080', 'Issues In Progress': '' }, { 'Issues In Version': 'PPW-1081', 'Issues In Progress': '' }, { 'Issues In Version': 'PPW-1123', 'Issues In Progress': '' }, { 'Issues In Version': 'PPW-1133', 'Issues In Progress': '' }, { 'Issues In Version': 'PPW-1134', 'Issues In Progress': '' } ],
array2 = [{ 'Issues In Version': '', 'Issues In Progress': 'PPW-1123' }, { 'Issues In Version': '', 'Issues In Progress': 'PPW-1133' }, { 'Issues In Version': '', 'Issues In Progress': 'PPW-1134' } ],
result = array1.map((o, i) => ({
'Issues In Version': o['Issues In Version'] || ((array2[i] || {})['Issues In Version']) || '',
'Issues In Progress': o['Issues In Progress'] || ((array2[i] || {})['Issues In Progress']) || ''
}));
console.log(result);
.as-console-wrapper { max-height: 100% !important; top: 0; }
任何长度数组的解决方案。
var array1 =[ { 'Issues In Version': 'PPW-1075', 'Issues In Progress': '' }, { 'Issues In Version': 'PPW-1076', 'Issues In Progress': '' }, { 'Issues In Version': 'PPW-1077', 'Issues In Progress': '' }, { 'Issues In Version': 'PPW-1078', 'Issues In Progress': '' }, { 'Issues In Version': 'PPW-1079', 'Issues In Progress': '' }, { 'Issues In Version': 'PPW-1080', 'Issues In Progress': '' }, { 'Issues In Version': 'PPW-1081', 'Issues In Progress': '' }, { 'Issues In Version': 'PPW-1123', 'Issues In Progress': '' }, { 'Issues In Version': 'PPW-1133', 'Issues In Progress': '' }, { 'Issues In Version': 'PPW-1134', 'Issues In Progress': '' } ],
array2 = [{ 'Issues In Version': '', 'Issues In Progress': 'PPW-1123' }, { 'Issues In Version': '', 'Issues In Progress': 'PPW-1133' }, { 'Issues In Version': '', 'Issues In Progress': 'PPW-1134' } ],
result = [array1, array2].reduce((r, a) => (a.forEach((o, i) => {
r[i] = r[i] || {};
Object.keys(o).forEach(k => r[i][k] = r[i][k] || o[k] || '');
}), r), []);
console.log(result);
.as-console-wrapper { max-height: 100% !important; top: 0; }