1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
|
var compactCols = function(){
//private globals
var getColsLength = function(array){
var colsLength = 0;
for(var i = 0, l = array.length, colLength; i < l; i++){
colLength = array[i].length;
colsLength = colLength > colsLength ? colLength : colsLength;
}
return colsLength;
},
//test if a colonne is empty
isEmptyCol = function(array, indexCols){
for(var i = 0, l = array.length, cell; i < l; i++){
cell = array[i][indexCols];
if(cell =! undefined && cell != null && cell != '')
return false;
}
return true;
};
//public
return function(array){
var colsLength = getColsLength(array),
indexCols = 0;
for(; indexCols < colsLength; indexCols++){
if(isEmptyCol(array, indexCols)){
for(var i = 0, l = array.length; i < l; i++){
array[i].splice(indexCols, 1);
}
colsLength--;
indexCols--;
}
}
return array;
}
}();
var le_tableau=new Array();
le_tableau[0]=new Array('cell 1 1','cell 1 2','cell 1 3', '', 'cell 1 5');
le_tableau[1]=new Array('cell 2 1','cell 2 2','cell 2 3', '', 'cell 2 5');
le_tableau[2]=new Array('cell 3 1','cell 3 2','cell 3 3', '', 'cell 3 5');
alert(compactCols(le_tableau)) |
Partager