JSFiddle - React, Tailwind, and code Playground
JavaScript
var data = [{
number: 1,
text: 123
}, {
number: 1,
text: 321
}, {
number: 2,
text: 888
}, {
number: 3,
text: 000
}];
var result = [{
number: 1,
messages: [{
text: 123
}, {
text: 321
}]
}, {
number: 2,
messages: [{
text: 888
}]
}, {
number: 3,
messages: [{
text: 000
}]
}]
let h = []
let r = data.reduce((r, o) => {
if (h[o.number] !== undefined) {
r[h[o.number]].messages.push({ text: o.text })
} else {
r.push({ number: o.number, messages: [{ text: o.text }] })
h[o.number] = r.length - 1
}
return r
}, [])
console.log(r)