Javascript:从数组中删除元素

Javascript:从数组中删除元素,javascript,arrays,Javascript,Arrays,我有一个数组,我想删除一些元素。我的数组是arrayAuxiliar。我的代码如下: for( var i = 0; i < arrayAuxiliar.length; i++) { if (arrayAuxiliar[i] == valueFirts) { arrayAuxiliar.splice(i,1); } else

我有一个数组,我想删除一些元素。我的数组是
arrayAuxiliar
。我的代码如下:

        for( var i = 0; i < arrayAuxiliar.length; i++)
        { 
            if (arrayAuxiliar[i] == valueFirts) {
                 arrayAuxiliar.splice(i,1);             
            }
            else if(arrayAuxiliar[i] == value){
                arrayAuxiliar.splice(i,1);  
            }
        }
for(变量i=0;i
正在发生的情况的示例:

  • 初始值:
    arrayAuxiliar=[3,2,1],valueFirst=1,value=2
  • 最终值:
    arrayAuxiliar=[3,1]
我知道发生这种情况是因为
splice()
更改了原始数组,因此
arrayAuxiliar[I]==valueFirts
之间的比较从来都不是真的。我还尝试使用
删除arrayAuxiliar[I]
,但它返回
[3,,]

如何解决这种情况,以获得唯一不验证条件的元素,即
3
?这个想法是最终的结果是
[3]
,我可以通过
arrayAuxiliar[0]
命令获得它。

我会使用:

const arr=[3,2,1];
const valueFirst=1;
常数值=2;

log(arr.filter(item=>![value,valueFirst].includes(item))我认为使用
过滤器将更合适。您可以尝试:

让arrayAuxiliar=[3,2,1]
常数valueFirst=1
常数值=2
arrayAuxiliar=arrayAuxiliar.filter(i=>i!==valueFirst&&i!==value)

console.log(arrayAuxiliar)
您还可以使用reduce函数

function test(arrayAuxiliar, valueFirts, value) {
  return arrayAuxiliar.reduce((acc,rec) => {
    if ((rec === value) || (rec === valueFirts)) {
      return [...acc]
    }
    return [...acc, rec]
  }, [])
}
console.log(test([3,2,1,4,1,2,2,3,1,4,5,8,2,5], 1, 2))

使用
过滤器
包含
方法

const数组=[3,2,1]
const remove_list=[2,1]
const res=array.filter(num=>!remove_list.includes(num))

console.log(res)
您可以倒计时而不是倒计时。如果您不想修改数组,可以使用
array.filter()
获取所需的元素。