我有一个csv文件,我已经通过换行符进行了拆分,并且我已经通过换行符中的逗号将其分解为更多,以便为我提供三件我正在寻找的内容并将其命名为以后用于该程序。我想要做的是在其中一个对象匹配某个值时删除一个项目。
var values=[];
var output="";
for(i = 0; i < csv_split.length; i++){
csv_split[i] = csv_split[i].split(',') //Splits the csv file that's already split by new line by commas
values[i]={}
values[i].Name=newline_split[i][1]; //finds the second object and names it values.name
values[i].Rev=newline_split[i][2]; //finds the third object and names it values.rev
values[i].URL=newline_split[i][9]; //finds the eighth object and names it values.url
}
稍后再使用,这样我就可以获得我正在寻找的值的列表。
for (i=0; i < values.length; i++){
output += values[i].Name + ',';
output += values[i].Rev + ',';
output += values[i].URL+ ',';
output += "\n\n||||||";
}
所以我所做的就是将这段代码修改为第一个for循环:
if (values[i].Rev == "NO ACCESS") {
csv_split[i].splice(0,1);
}
这背后的想法是,如果values.Rev匹配“NO ACCESS”,它将删除整个csv_split [i],以便稍后它不会在输出中显示它。
现在运行脚本会提供整个输出,无论values.Rev是否匹配“NO ACCESS”。我错过了什么?
答案 0 :(得分:2)
使用filter方法可以更轻松地完成这项工作。你这样使用它:
var finalArr = values.filter(function(val) { return val.Rev != "NO ACCESS"; });
这应该为您提供一系列有权访问的内容。