Javascript 在JS中按值从数组中删除多个元素

Javascript 在JS中按值从数组中删除多个元素,javascript,arrays,splice,Javascript,Arrays,Splice,当我想删除一个元素时,很容易。这是我的职责: function removeValues(array, value) { for(var i=0; i<array.length; i++) { if(array[i] == value) { array.splice(i, 1); break; } } return array; } 函数移除值(数组,值){ 对于(var i=0;i我

当我想删除一个元素时,很容易。这是我的职责:

function removeValues(array, value) {
    for(var i=0; i<array.length; i++) {
        if(array[i] == value) {
            array.splice(i, 1);
            break;
        }
    }
    return array;
}
函数移除值(数组,值){

对于(var i=0;i我相信您会在Javascript的内置数组函数中找到所需的功能……特别是

//数组过滤器
函数足够大(值){
返回值>=10;
}
var filtered=[12,5,8,130,44].filter(足够大);
//过滤后的是[12130,44]
//数组映射(也可用于筛选)
变量数=[1,4,9];
var doubles=numbers.map(函数(num){
返回数*2;
});
//双打现在是[2,8,18],数字仍然是[1,4,9]
/////使用数组映射删除值的更新
var a=[1,2,3,4,5,6];
a、 地图(功能(v,i){
如果(v%2==0){
a、 流行音乐(一);
}
});
控制台日志(a);

//如上所示,所有数组函数都可以在回调中使用以过滤原始数组。或者,可以在函数中填充另一个数组,然后将其分配给变量a,从而有效地减少数组。
这里是使用ES7的简单版本:

// removing values
let items = [1, 2, 3, 4];
let valuesToRemove = [1, 3, 4]
items = items.filter((i) => !valuesToRemove.includes(i))
对于ES6的简单版本

// removing values
let items =[1, 2, 3, 4];
let valuesToRemove = [1, 3, 4]
items = items.filter((i) => (valuesToRemove.indexOf(i) === -1))
const items=[0,1,2,3,4];
[1,4,3].reverse().forEach((索引)=>{
项目.拼接(索引,1)
})
// [0, 2, 4]

什么是多个元素?请举例说明?每个值可能重复调用
removeValues
?可能重复与此相关的
.map
?举个例子让OP明白你的意思。对。那么你如何使用它来删除元素?@kurt我起初对你的答案投了赞成票,但后来r你用一个例子更新了答案,我被迫投了反对票,因为它没有回答op和felix的问题。op需要从数组中删除元素,而不是改变它们的值。“我只是将值推送到我返回的新数组中。”因此,您实际上没有从调用
.map
的数组中删除元素。如果您不尝试包含
.map
,这可能是一个很好的答案。这正是我所需要的社区鼓励在代码中添加解释,而不是纯粹基于代码的答案(请参阅)。