2017-05-22 30 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>

相關問題