我有一个 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”。我错过了什么?
最佳答案
使用 filter 可以更轻松地做到这一点方法。你可以这样使用它:
var finalArr = values.filter(function(val) { return val.Rev != "NO ACCESS"; });
这应该为您提供一个数组,其中包含所有具有访问权限的内容。
关于javascript - 根据条件从数组中删除对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36289475/