我有一个表,它遵循一个定义的序列: col,name,value1,value2,value 3,col,name value1,value2,value3 ..col,name,value1,value2,value 3
代码:
var data =["DN","Atac","1","2","3","PDA","Atac","5","6","7","EPDA","Atac","8","9","11","DN Potentielle","Atac","14","4","8"] ;我尝试拆分数据表col、name、value: Code结果:
var column = ["DN","PDA","EPDA","DN Potentielle"];
var name ="Atac";
var values =[ "1","2","3","5","6","7","8","9","11","14","4","8"];如果没有大量的代码,最简单的方法是如何做到的呢?
发布于 2015-04-28 10:03:46
如果您确信您的数据是一致的,并且可以依赖您编写的结构,那么最简单的是:
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"]小提琴
发布于 2015-04-28 10:05:38
设置一个对象来保存以下值:
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));
}演示
发布于 2015-04-28 10:06:34
我试图找出您想要的内容,最好的方法是检索数字值和字符串值,而不分割它。
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/
https://stackoverflow.com/questions/29916051
复制相似问题