用于显示错误结果的JavaScript嵌套
JavaScript Nested for showing wrong results
我对这段代码有问题,无法理解。它似乎是添加到"数据"中,而不是像应该的那样从"数据"添加到"票证"中。在谷歌脚本中使用代码
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,3,1,3],[1,1,2,1,2],[1,2,4,1,4],[1,2,1,4,1,4],[1,1,2,1,4,1,4]但是数据不应该改变
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();
这就是我的用武之地。如果有办法让它变得更好,请让我知道
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);
}
相关文章:
- Javascript嵌套函数属性继承
- IE9 javascript嵌套`createElement`失败
- Javascript嵌套对象访问根级别
- JavaScript嵌套获取API
- Javascript嵌套事件
- Javascript嵌套循环匹配、组合、替换
- 如何产生结果Javascript嵌套缺陷
- Javascript-嵌套列表获胜't展开
- AngularJs&Javascript嵌套函数&他们的调用
- Javascript嵌套函数不起作用
- JavaScript:嵌套函数的动态调用
- Javascript 嵌套的 AJAX 请求
- 解析 - Javascript 嵌套调用
- Javascript 嵌套函数性能
- Javascript 嵌套函数初始化
- 难以理解Javascript嵌套函数/闭包
- JavaScript 嵌套对象对父级的引用
- Javascript 嵌套列表 css
- jQuery JavaScript嵌套异步函数回调
- Javascript嵌套If语句