我遇到了这段代码的问题,无法解决这个问题。它似乎增加了“数据”而不是“数据”中的“票证”。使用Google Script中的代码
function consolidate(){
var data = [[1,1,1,1,1,1],[1,1,1,1,1,1],[1,2,1,2,1,2],[1,2,1,2,1,2],[1,1,1,1,1,1],[1,2,1,2,1,2],[1,1,1,1,1,1],[1,2,1,2,1,2],[1,2,1,2,1,2]];
var ticket = [];
ticket[0] = data[0];
for(var x=0;x<data.length;x++){
for(var i=0;i<ticket.length;i++){
if(ticket[i][0]==data[x][0]&&ticket[i][1]==data[x][1]&&ticket[i][2]==data[x][2]&&ticket[i][4]==data[x][4]){
ticket[i][3]=ticket[i][3]+data[x][3];
ticket[i][5]=ticket[i][5]+data[x][5];
break;
}
}
ticket[i]=data[x];
}
}
我的数据结果是 [[1,1,1,3,1,3],[1,1,1,2,1,2],[1,2,1,4,1,4],[1,2,1, 4,1,4],[1,1,1,2,1,2],[1,1,1,1,1,4],[1,1,1,1,1,1],[ 1,2,1,4,1,4],[1,2,1,2,1,2]] 但数据不应该改变
答案 0 :(得分:1)
function consolidate(){
var data = [[1,1,1,1,1,1],[1,1,1,1,1,1],[1,2,1,2,1,2],
[1,2,1,2,1,2],[1,1,1,1,1,1],[1,2,1,2,1,2],
[1,1,1,1,1,1],[1,2,1,2,1,2],[1,2,1,2,1,2]];
var ticket = [];
ticket[0] = data[0].slice();
for(var x = 0; x < data.length; x++) {
for(var i = 0; i < ticket.length; i++) {
for(var k = 0; k < 5; k++) {
if (ticket[i][k] != data[x][k])
break;
else if (k != 4)
continue;
ticket[i][3] += data[x][3];
ticket[i][5] += data[x][5];
}
}
ticket[i] = data[x].slice();
}
console.log(data);
}
consolidate();
答案 1 :(得分:0)
这是我得到的地方,它的工作原理。如果有办法让它变得更好,请告诉我
function consolidate1(){// put data in here <-----()
var data = [[1,1,1,1,1,1],[2,1,1,1,1,1],[1,1,1,1,1,1],[2,1,1,1,1,1],[1,1,1,1,1,1],[3,1,1,1,1,1],[1,1,1,1,1,1],[3,1,1,1,1,1],[1,1,1,1,1,1]];
var ticket = [];
ticket[0]=[];
ticket[0][0]=data[0][0];
ticket[0][1]=data[0][1];
ticket[0][2]=data[0][2];
ticket[0][3]=data[0][3];
ticket[0][4]=data[0][4];
ticket[0][5]=data[0][5];
for(var x=1;x<data.length;x++){ //get all the unique rows based on columns 0,1,2,4
var indicator = 0;
for(var i=0;i<ticket.length;i++){
if(ticket[i][0]==data[x][0] && ticket[i][1]==data[x][1] && ticket[i][2]==data[x][2] && ticket[i][4]==data[x][4]){
ticket[i][3]=ticket[i][3]+data[x][3];
ticket[i][5]=ticket[i][5]+data[x][5];
indicator = 1;
break;
}
}
if(indicator==0){
ticket[i]=[];
ticket[i][0]=data[x][0];
ticket[i][1]=data[x][1];
ticket[i][2]=data[x][2];
ticket[i][3]=data[x][3];
ticket[i][4]=data[x][4];
ticket[i][5]=data[x][5];
}
}
Logger.log(ticket);
}