Javascript根据第一列中的值从csv文件中拆分行
我正在尝试根据第一列中的vlue将csv文件拆分为组。然后将这些行存储在一个数组中,以便在网页上显示。 我是javascript新手,无法理解它。 我有一个具有以下结构的csv文件:Javascript根据第一列中的值从csv文件中拆分行,javascript,jquery,ajax,csv,Javascript,Jquery,Ajax,Csv,我正在尝试根据第一列中的vlue将csv文件拆分为组。然后将这些行存储在一个数组中,以便在网页上显示。 我是javascript新手,无法理解它。 我有一个具有以下结构的csv文件: 0,-1.0,0.0,0.0,0.0 1,0.0,0.0,0.0,0.0 0,-1.0,0.0,0.0,0.0 1,-1.0,0.0,0.0,0.0 2,0.0,0.0,0.0,0.0 0,-1.0,0.0,0.0,0.0 1,-1.0,0.0,0.0,0.0 2,-1.0,0.0,0.0,0.0 3,0.0,0.
0,-1.0,0.0,0.0,0.0
1,0.0,0.0,0.0,0.0
0,-1.0,0.0,0.0,0.0
1,-1.0,0.0,0.0,0.0
2,0.0,0.0,0.0,0.0
0,-1.0,0.0,0.0,0.0
1,-1.0,0.0,0.0,0.0
2,-1.0,0.0,0.0,0.0
3,0.0,0.0,0.0,0.0
0,-1.0,0.0,0.0,0.0
1,-1.0,0.0,0.0,0.0
2,-1.0,0.0,0.0,0.0
3,-1.0,0.0,0.0,0.0
4,0.0,0.0,0.0,0.0
我试图根据文件中第一列的值将数据行拆分为组。我试图从0分组到下一个0,然后将每个分割数据块存储在一个数组中,以便在网页上显示
我可以从for循环访问第一行,并设置一个条件来检查值是否为0,但在检测到下一个0之前,我很难添加下一行
请看下面我到目前为止所做的
// AJAX in the data file
$.ajax({
type: "GET",
url: "static/Dataframe.csv",
dataType: "text",
cache: false,
success: function(data) {
var arr1 = data.split(/\r\n|\n|\r/);
var array2 = [];
for (let i = 0; i < arr1.length; i++) {
arr1[i].split(',');
array2.push(arr1[i]);
if(arr1[i][0]== 0){
array2.pop()
}
}
// for debugging
// document.getElementById("dialog").innerHTML = arr1;
console.log(array2);
}
});
我需要的是:
[
[0, -1.0, 0.0, 0.0, 0.0, 1, 0.0, 0.0, 0.0, 0.0],
[0, -1.0, 0.0, 0.0, 0.0, 1, -1.0, 0.0, 0.0, 0.0, 2, 0.0, 0.0, 0.0, 0.0],
[0, -1.0, 0.0, 0.0, 0.0, 1, -1.0, 0.0, 0.0, 0.0, 2, -1.0, 0.0, 0.0, 0.0, 3, 0.0, 0.0, 0.0, 0.0],
[0, -1.0, 0.0, 0.0, 0.0, 1, -1.0, 0.0, 0.0, 0.0, 2, -1.0, 0.0, 0.0, 0.0, 3, -1.0, 0.0, 0.0, 0.0, 4, 0.0, 0.0, 0.0, 0.0]
]
我是javaScript新手,很难弄明白这一点。
任何建议都将不胜感激。请使用此
// AJAX in the data file
$.ajax({
type: "GET",
url: "static/Dataframe.csv",
dataType: "text",
cache: false,
success: function(data) {
var arr1 = data.split(/\r\n|\n|\r/);
var array2 = [];
for (let i = 0; i < arr1.length; i++) {
tmp = arr1[i].split(',');
array2.push(tmp);
if(arr1[i][0]== 0){
array2.pop()
}
}
// for debugging
// document.getElementById("dialog").innerHTML = arr1;
console.log(array2);
}
});
//数据文件中的AJAX
$.ajax({
键入:“获取”,
url:“static/Dataframe.csv”,
数据类型:“文本”,
cache:false,
成功:功能(数据){
var arr1=data.split(/\r\n |\n |\r/);
var array2=[];
for(设i=0;i
您可以检查内部数组的第一个值,并将新数组添加到结果集中
“0.0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0\n1,-1.0,0.0,0.0,0.0\n2,-1.0,0.0,0.0,0.0\n3,-1.0,0.0,0.0,0.0,0.0\n4,0.0,0.0,0.0,0.0',,
结果=数据。拆分(/\r\n |\n |\r/)。减少((r,s)=>{
var数组=s.split(',').map(编号);
如果(!数组[0]){
r、 推送([]);
}
r[r.length-1].push(…数组);
返回r;
}, []);
log(result.map(a=>a.join(“”))代码>
。作为控制台包装器{max height:100%!important;top:0;}
有什么作用吗?请添加一个想要的结果。很抱歉我把它放进去了。我现在就去,谢谢你,尼娜。这正是我想要的:)
// AJAX in the data file
$.ajax({
type: "GET",
url: "static/Dataframe.csv",
dataType: "text",
cache: false,
success: function(data) {
var arr1 = data.split(/\r\n|\n|\r/);
var array2 = [];
for (let i = 0; i < arr1.length; i++) {
tmp = arr1[i].split(',');
array2.push(tmp);
if(arr1[i][0]== 0){
array2.pop()
}
}
// for debugging
// document.getElementById("dialog").innerHTML = arr1;
console.log(array2);
}
});
// AJAX in the data file
// Just removed the for loop with the length and see the modified code.
$.ajax({
type: "GET",
url: "static/Dataframe.csv",
dataType: "text",
cache: false,
success: function(data) {
var arr1 = data.split(/\r\n|\n|\r/);
var array2 = [];
for (var items of arr1) {
tmp = items.split(',');
array2.push(tmp);
if(items[0]== 0){
array2.pop()
}
}
// for debugging
// document.getElementById("dialog").innerHTML = arr1;
console.log(array2);
}
});