87,997
社区成员




const arr1 = [{'id': 1}, {'id': 2}, {'id': 3}, {'id': 4}];
const arr2 = [
{'id': 1, 'array': [2, 3, 4]},
{'id': 2, 'array': [3, 4]},
{'id': 3, 'array': [5, 6, 7, 8]}
]
arr1.forEach(v1 => {
let arrTemp = arr2.find(v2 => v2.id === v1.id);
/**
* 如果有TypeScript。可使用可选链优化下面语句写法
* arrTemp?.array?.forEach()
*/
arrTemp && arrTemp.array && arrTemp.array.forEach((v3, idx) => {
v1['array' + (++idx)] = v3;
});
})
console.log(JSON.stringify(arr1, null, 2));
var jsonA = [{'id':1, t: 1},{'id':2, t: 2},{'id':3, t: 3}]
var jsonB = [
{'id':1,'array':[2,3,4]},
{'id':2,'array':[3,4]},
{'id':3,'array':[5,6,7,8]}
]
function merge(jsonA, jsonB) {
let result = []
for(let item of jsonA) {
let found = jsonB.find(each => each.id === item.id)
let obj = found.array.reduce((obj, v, i) => {
obj['id'] = item.id
obj['array' + (i + 1)] = v
Object.assign(obj, item)
return obj
}, {})
result.push(obj)
}
return result;
}
console.log(merge(jsonA, jsonB))
<script>
var a = [{
'id': 1
}, {
'id': 2
}, {
'id': 3
}]
var b = [{
'id': 1,
'array': [2, 3, 4]
},
{
'id': 2,
'array': [3, 4]
},
{
'id': 3,
'array': [5, 6, 7, 8]
}
]
let arr = []
a.forEach(item => {
var json = {}
var ob = b.find(j => j.id === item.id)
json['id'] = item.id
ob.array.forEach((o, index) => {
json['array'+(++index)] = o
})
arr.push(json)
})
console.log(arr)
</script>