的數組元素內的對象:如何遍歷和比較給出的下面陣列結構在javascript
[{ _id: '1234', characteristics: [[Object], [Object]]},
{ _id: '1234',characteristics: [[Object], [Object]]},
{ _id: '4567', characteristics: [[Object], [Object]]},
{ _id: '4567',characteristics: [ [Object], [Object]]},
{ _id: '4987',characteristics: [ [Object], [Object]]}]
如何可以比較一個數組元素的下一個,並具有相同ID合併對象?
最終結果是一樣的東西
[ { _id: '1234', characteristics: [ [Object], [Object] ,[Object], [Object] ]},
{ _id: '4567',characteristics: [ [Object], [Object] , [Object], [Object]]},
{ _id: '4987', characteristics: [ [Object], [Object] ] } ]
基本上裏面都爲1234的對象id的對象一起下特徵合併。
我一直盯着過去2個小時,有人有什麼想法嗎?我更喜歡更實用的方法。
編輯:我使用的是基於Nenad Vracar解決方案的解決方案。
function mergeDupKey(data) {
var o = {}
return data.reduce(function(r, e) {
if (!o[e._id]) {
o[e._id] = e;
r.push(o[e._id]);
} else {
o[e._id].characteristics = o[e._id].characteristics.concat(e.characteristics);
}
return r;
}, [])
}
var g = mergeDupKey(data)`
你能分享辦法,你已經嘗試過? – evolutionxbox
您需要**減少**您的陣列。 – Amit