将两个数据数组组合并修改为单个数组

Combining and modifying two data arrays into a single array

本文关键字:数组 组合 合并 单个 修改 数据 两个      更新时间:2023-09-26

考虑这个jsfiddle示例。在这个例子中,我想要var数据数组

[4,3],
[4,4],
[6, 6],
[6, 7],
[7,8],
[7,9],
[8,10],
[8,11]

修改为

 [4,3,4],
 [6,6,7],
 [7,8,9],
 [8,10,11]

我希望将[X,Y]字段修改为[X,Y1,Y2]。如何做到这一点?

//Original data
var data = [[4,3],
[4,4],
[6, 6],
[6, 7],
[7,8],
[7,9],
[8,10],
[8,11]]
//Group data by x coordinate in an object
var intermediate = {};
for(var i = 0; i < data.length; i++){
    intermediate [data[i][0]] = (intermediate [data[i][0]] || []).concat(data[i][1]);
}
//Convert intermediate object to array
var result = [];
for(var i in intermediate){
        result.push([parseInt(i)].concat(intermediate[i]));
}

编辑:以其他方式更改数据:

var data = [[4,3,4],[6,6,7],[7,8,9],[8,10,11]];
var result = [];
data.forEach(function(row){
    row.slice(1).forEach(function(cell){
        result.push([row[0], cell]);
    });
});
var result = [];
var arr = [[4,3], [4,4],[6, 6],[6, 7],[7,8],[7,9],[8,10],[8,11]];
for(var i = 0;i< arr.length;i+=2){
    result.push([arr[i][0], arr[i][1], arr[i+1][1]])
}