javascript - 根据条件从数组中删除对象

标签 javascript arrays if-statement for-loop

我有一个 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/

相关文章:

javascript - 是否修改对象 : to use a variable, 中的数组的性能?

sql-server - SQL动态查询: check whether table column has any data

javascript - 如何存储变量以供其他 jQuery 脚本在页面上使用。

Javascript文件组织和设计

javascript - Angular js 返回错误未知提供者 :

javascript 数组值的总和

php - in_array() 验证不起作用

java - 快艇三样

c++ - if 和 if-else 语句不适用于 C++

javascript - 如何临时添加一个CSS样式?