2015-04-28 25 views
0

我有一個表格,它遵循一個定義的序列:[col,name,value1,value2,value 3,col,name value1,value2,value3 ..col,名稱,值1,值2,值3]瀏覽表格並在javascript中的2個表格上共享

代碼:

var data =["DN","Atac","1","2","3","PDA","Atac","5","6","7","EPDA","Atac","8","9","11","DN Potentielle","Atac","14","4","8"] ; 

我儘量拆分數據表山坳,名稱,值: 碼結果:

var column = ["DN","PDA","EPDA","DN Potentielle"]; 
var name ="Atac"; 
var values =[ "1","2","3","5","6","7","8","9","11","14","4","8"]; 

如何具有最簡單的會見沒有大量的代碼,HOD做

回答

1

如果你確定你的數據是一致的,可以依靠你寫的結構,最簡單的做法是:

var column = []; 
var name = []; 
var values = []; 
for (var i = 0; i < data.length; i = i+5) { 
    column.push(data[i]); 
    name.push(data[i+1]); 
    values.push(data[i+2]); 
    values.push(data[i+3]); 
    values.push(data[i+4]); 
}; 

name = name.filter(function(value, index, self) { 
    return self.indexOf(value) === index; 
}); 

console.log(column); //["DN","PDA","EPDA","DN Potentielle"] 
console.log(name); //["Atac"] 
console.log(values); //["1", "2", "3", "5", "6", "7", "8", "9", "11", "14", "4", "8"] 

Fiddle

+0

我同意,這是最簡單的事情,謝謝阿哈 – kenza

0

建立一個對象來保存的值:

var obj = { column: [], name: null, values: [] }; 

然後循環中的5組的陣列上,將各種元素添加到對象:

for (var i = 0, l = data.length; i < l; i+=5) { 
    obj.column.push(data[i]); 
    obj.name = data[i + 1]; 

    // push.apply is a neat way of concatenation that doesn't 
    // require the creation of a new variable 
    obj.values.push.apply(obj.values, data.slice(i + 2, i + 5)); 
} 

DEMO

0

我揣摩你想要什麼,最好的辦法是檢索數值和字符串值,而不劈裂它。

var data =["DN","Atac","1","2","3","PDA","Atac","5","6","7","EPDA","Atac","8","9","11","DN Potentielle","Atac","14","4","8"] ; 
var columns = []; 
var values = []; 
$.each(data, function(k, v) { 
    var parsedValue = parseInt(data[k]); 
    if (! isNaN(parsedValue)) { 
     values.push(parsedValue); 
    } else { 
     columns.push(v); 
    } 

}); 
console.log(columns); 
console.log(values); 

演示:http://jsfiddle.net/bzryqs84/1/

+0

的OP沒有提到的jQuery的問題或標籤的任何地方。 – Andy