[英]How do i multiple sort an array per column for all lines ? (JavaScript)
[英]How do i split an array per column for all columns? (JavaScript)
您好,JavaScript同行,
我有一个从csv文件中的数据创建的数组,如下所示:
在这种情况下,每个数组索引(例如array [0])都是标头,其中有87个标头。 该数组中的所有其他数组都是行。
我需要获取该数据并在各列之间进行拆分
以下代码仅用于第一列:
var specialCounter = 0;
for(var j = 1; j<vm.lines.length; j++){
vm.columns.push(vm.lines[j][0]);
if(specialCounter >= vm.lines[j][0].length)
specialCounter = 0;
else
specialCounter++;
}
vm.columnData.columnData= vm.columns;
console.log(vm.columnData);
这是它吐出的数组。
我如何对此数组中的所有列执行此操作?
可能具有类似vm.dataPerColumn = [{column1: [...], column2: [...], etc...]
减少数组, forEach子数组检查键是否存在,如果不存在,请在结果对象( r
)上创建键。 将当前项目按到键:
var arr = [['h1', 1, 2, 3], ['h2', 4 , 5 , 6], ['h3', 7, 8, 9]]; var result = arr.reduce(function(r, a) { a.forEach(function(s, i) { var key = i === 0 ? 'headers' : 'column' + i; r[key] || (r[key] = []); // if key not found on result object, add the key with empty array as the value r[key].push(s); }); return r; }, {}); console.log(result);
通过阅读说明并查看图片,标题似乎在array[0]
const vm = {};
vm.lines = [["$", "house", "car"],[5, 10, 15],[25,35,45]];
const headers = vm.lines[0];
const data = vm.lines.slice(1);
const columns = data.reduce((newColumns, row) => {
for(let i=0;i<row.length;i++){
if(newColumns.length-1 < i){ //first column;
newColumns.push([]);
}
newColumns[i].push(row[i]);
}
return newColumns;
}, []);
const columnsWithHeaders = headers.map((header, index) => ({[header]:columns[index]}));
console.log(columnsWithHeaders);
您请求了column1,column2等,但是当您已经有一个数组时,这实际上没有任何意义,因此我将标题名称与相应的列放在一起,然后可以直接引用它
我所做的是将标题和数据分开。 因此您不必担心第一行,
然后,我将行转换为列,然后,您可以遍历标题并将列数组添加到每个标题中。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.