一尘不染

如何在JavaScript中合并数组

javascript

您好,我想基于数组中的唯一项合并数组。

我拥有的对象

totalCells = []

在这个totalCells数组中,我有几个这样的对象

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

现在,我想制作一个数组,在该数组中我可以基于lineNumber进行数组组合。

就像我有一个具有lineNumber属性和cellWidth集合的对象。我可以这样做吗?

我可以遍历每一行并检查行号是否相同,然后按该单元格宽度。有什么办法我可以算吗?

我正在尝试获得这样的输出。

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

阅读 244

收藏
2020-04-25

共1个答案

一尘不染

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);
}
2020-04-25