Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/425.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
javascript删除数组中匹配的行_Javascript_Arrays - Fatal编程技术网

javascript删除数组中匹配的行

javascript删除数组中匹配的行,javascript,arrays,Javascript,Arrays,我有一个数组结构,如下所示,我需要删除所有具有值vik的条目 [{"type" :"x", value: "vik"}, {"type" :"x", value: "jack"}, {"type" :"x", value: "jack"}, {"type" :"x", value: "jack"}, {"type" :"x", value: "vik"}, {"type" :"x", value: "vik"}, ] 使用具有拼接匹配值的for循环迭代vik会出错。最好的方法是什么 我的代码是

我有一个数组结构,如下所示,我需要删除所有具有值vik的条目

[{"type" :"x", value: "vik"},
{"type" :"x", value: "jack"},
{"type" :"x", value: "jack"},
{"type" :"x", value: "jack"},
{"type" :"x", value: "vik"},
{"type" :"x", value: "vik"},
]
使用具有拼接匹配值的for循环迭代vik会出错。最好的方法是什么

我的代码是:

for(let obj of filterList){
        var i =0
        for(let lead of this.core.leadLocalList){
          console.log("comapring:" + lead.campaign)
          if(obj.value == lead.campaign){
            console.log("matched")
            this.core.leadLocalList.splice(i,1)
          }else
            i++
        }
    }

您可以使用数组过滤器方法来获得所需的结果。

var data=[{“type”:“x”,值:“vik”},
{“type”:“x”,值:“jack”},
{“type”:“x”,值:“jack”},
{“type”:“x”,值:“jack”},
{“type”:“x”,值:“vik”},
{“type”:“x”,值:“vik”},
];
const result=data.filter(item=>item.value!=“vik”);

控制台日志(结果)您可以使用数组过滤器方法来获得所需的结果。

var data=[{“type”:“x”,值:“vik”},
{“type”:“x”,值:“jack”},
{“type”:“x”,值:“jack”},
{“type”:“x”,值:“jack”},
{“type”:“x”,值:“vik”},
{“type”:“x”,值:“vik”},
];
const result=data.filter(item=>item.value!=“vik”);

控制台日志(结果)您可以使用
lodash
。这是一个非常简单的应用程序

与此类似:

_.remove( filterList, {
    value: 'vik'
} );
或者,使用ES6,您可以执行以下操作:

const filtered = filterList.filter( row => row.value !== 'vik' );
但是,如果应用程序变得复杂,并且您想要更高级一点的东西,那么您可以利用谓词函数并基于此确定过滤:

_.remove( filterList, ( obj ) => {
    return ( obj.propertyOne !== SOME_CONSTANT ) && ( ... )
} );

您可以使用
lodash
。这是一个非常简单的应用程序

与此类似:

_.remove( filterList, {
    value: 'vik'
} );
或者,使用ES6,您可以执行以下操作:

const filtered = filterList.filter( row => row.value !== 'vik' );
但是,如果应用程序变得复杂,并且您想要更高级一点的东西,那么您可以利用谓词函数并基于此确定过滤:

_.remove( filterList, ( obj ) => {
    return ( obj.propertyOne !== SOME_CONSTANT ) && ( ... )
} );