Como combinar uma matriz em javascript

Olá eu quero mesclar uma matriz com base no item exclusivo na matriz.

O object que eu tenho

totalCells = [] 

Neste array totalCells eu tenho vários objects como este

 totalCells = [ { cellwidth: 15.552999999999999, lineNumber: 1 }, { cellwidth: 14, lineNumber: 2 }, { cellwidth: 14.552999999999999, lineNumber: 2 }, { cellwidth: 14, lineNumber: 1 } ]; 

Agora eu quero fazer uma matriz onde eu tenho combinação de matriz com base no lineNumber.

Como se eu tivesse um object com a propriedade lineNumber e a coleção cellWidth. Posso fazer isso ?

Eu posso percorrer cada linha e verificar se o número da linha é o mesmo e, em seguida, empurrar essa largura de banda. Existe alguma maneira que eu possa imaginar?

Estou tentando obter uma saída como essa.

 totalCells = [ { lineNumber : 1, cells : [15,16,14] }, { lineNumber : 2, cells : [17,18,14] } ] 

 var newCells = []; for (var i = 0; i < totalCells.length; i++) { var lineNumber = totalCells[i].lineNumber; if (!newCells[lineNumber]) { // Add new object to result newCells[lineNumber] = { lineNumber: lineNumber, cellWidth: [] }; } // Add this cellWidth to object newcells[lineNumber].cellWidth.push(totalCells[i].cellWidth); } 

E algo assim:

 totalCells.reduce(function(a, b) { if(!a[b.lineNumber]){ a[b.lineNumber] = { lineNumber: b.lineNumber, cells: [b.cellwidth] } } else{ a[b.lineNumber].cells.push(b.cellwidth); } return a; }, []); 

Espero que isto ajude!

Você quer dizer algo assim?

 var cells = [ { cellwidth: 15.552999999999999, lineNumber: 1 }, { cellwidth: 14, lineNumber: 2 }, { cellwidth: 14.552999999999999, lineNumber: 2 }, { cellwidth: 14, lineNumber: 1 } ] var totalCells = []; for (var i = 0; i < cells.length; i++) { var cell = cells[i]; if (!totalCells[cell.lineNumber]) { // Add object to total cells totalCells[cell.lineNumber] = { lineNumber: cell.lineNumber, cellWidth: [] } } // Add cell width to array totalCells[cell.lineNumber].cellWidth.push(cell.cellwidth); }