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()
获取所需的元素。