2017-05-22 31 views
0

地狱:我尝试拼接阵列时遇到问题

我一直在拉我的头发。我试图拼接一个多维数组我想删除具有0的行的索引,然后将零推到最后。我能够将零推到最后,但是索引列2中的0位不会被删除。我已经尝试过所有的事情,并且认为我可以请求帮助以指引我朝着正确的方向前进。我真的需要得到这个'这是我的代码,我感谢任何帮助。

(function() { 
 
    'use strict'; 
 

 
    var data = [ 
 
    ['e', 0, 1, 2, 3, 4], 
 
    ['a', 54312, 235, 5, 15, 4], 
 
    ['a', 6, 7, 8, 9, 232], 
 
    ['a', 54, 11235, 345, 5, 6], 
 
    ['b', 0, 1, 2, 3, 4], 
 
    ['b', 54312, 235, 5, 15, 4], 
 
    ['c', 62, 15, 754, 93, 323], 
 
    ['d', 27, 11235, 425, 18, 78], 
 
    ['d', 0, 1, 2, 3, 4], 
 
    ['d', 54312, 235, 5, 15, 4], 
 
    ['e', 6, 7, 8, 9, 232], 
 
    ['e', 54, 11235, 345, 5, 6], 
 
    ['e', 0, 1, 2, 3, 4], 
 
    ['e', 54312, 235, 5, 15, 4], 
 
    ['e', 62, 15, 754, 93, 323], 
 
    ['e', 27, 11235, 425, 18, 78] 
 
    ]; 
 

 
    //Create a HTML Table element. 
 
    var table = document.createElement("TABLE"); 
 
    var somedata = document.createElement("TD"); 
 

 
    //Get the count of columns. 
 
    var columnCount = data[0].length; 
 

 
    var count = 0; 
 
    //Add the data rows. 
 
    for (var i = 0; i < data.length; i++) { 
 
    var row = table.insertRow(-1); 
 
    for (var j = 0; j < columnCount; j++) { 
 
     var cell = row.insertCell(-1); 
 
     cell.innerHTML = data[i][j]; 
 
     cell.innerHtml = myZero; 
 
     var myZero = data[i][j] 
 
     if (myZero === 0) { 
 
     console.log(i, j, cell); 
 
     console.log("is equal"); 
 
     console.log(data[myZero].splice(2, 1)); 
 
     data[myZero].push(0); 
 
     } 
 
    } 
 
    } 
 

 
    var dvTable = document.getElementById("dvTable"); 
 
    dvTable.innerHTML = ""; 
 
    dvTable.appendChild(table); 
 

 
})();
table { 
 
    border-collapse: collapse; 
 
    border-left: 1px solid #999999; 
 
    border-top: 1px solid #999999; 
 
} 
 
td { 
 
    border-right: 1px solid #999999; 
 
    border-bottom: 1px solid #999999; 
 
}
<div id="dvTable"></div>

请多关照 PHD

+0

是的,它的工作就像一个魅力!我需要另一套眼睛。非常感谢。 – user2280852

+0

是的!我没有像魅力一样工作。我改变了周围的事物,所以我猜想需要另一套眼睛。非常感谢。 – user2280852

回答

1

你有一些东西出来的秩序和你接头被引用的静态值,所以总是拼接阵列中(第三项位置2 )。您还总是将0推入阵列阵列中的第一个阵列(data[myZero].push(0););

(function() { 
 
    'use strict'; 
 

 

 
    var data = [ 
 
    ['e', 0, 1, 2, 3, 4], 
 
    ['a', 54312, 235, 5, 15, 4], 
 
    ['a', 6, 7, 8, 9, 232], 
 
    ['a', 54, 11235, 345, 5, 6], 
 
    ['b', 0, 1, 2, 3, 4], 
 
    ['b', 54312, 235, 5, 15, 4], 
 
    ['c', 62, 15, 754, 93, 323], 
 
    ['d', 27, 11235, 425, 18, 78], 
 
    ['d', 0, 1, 2, 3, 4], 
 
    ['d', 54312, 235, 5, 15, 4], 
 
    ['e', 6, 7, 8, 9, 232], 
 
    ['e', 54, 11235, 345, 5, 6], 
 
    ['e', 0, 1, 2, 3, 4], 
 
    ['e', 54312, 235, 5, 15, 4], 
 
    ['e', 62, 15, 754, 93, 323], 
 
    ['e', 27, 11235, 425, 18, 78] 
 
    ]; 
 

 

 
    //Create a HTML Table element. 
 
    var table = document.createElement("TABLE"); 
 
    var somedata = document.createElement("TD"); 
 

 

 
    //Get the count of columns. 
 
    var columnCount = data[0].length; 
 

 
    var count = 0; 
 
    //Add the data rows. 
 
    for (var i = 0; i < data.length; i++) { 
 
    var row = table.insertRow(-1); 
 
    for (var j = 0; j < columnCount; j++) { 
 
     var myZero = data[i][j] 
 
     if (myZero === 0) { 
 
     console.log(i, j, cell); 
 
     console.log("is equal"); 
 
     console.log(data[i].splice(j, 1)); 
 
     data[i].push(0); 
 
     } 
 
     var cell = row.insertCell(-1); 
 
     cell.innerHTML = data[i][j]; 
 
     cell.innerHtml = myZero; 
 
    } 
 
    } 
 

 
    var dvTable = document.getElementById("dvTable"); 
 
    dvTable.innerHTML = ""; 
 
    dvTable.appendChild(table); 
 

 

 
})();
<div id="dvTable"></div>

相关问题