[英]Javascript: Remove element from array
我有一个数组,我想删除一些元素。 我的数组是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);
}
}
正在发生的事情的例子:
arrayAuxiliar = [3,2,1], valueFirst = 1, value = 2
arrayAuxiliar = [3,1]
我知道发生这种情况是因为splice()
更改了原始数组,因此arrayAuxiliar[i] == valueFirts
之间的比较永远不会正确。 我也尝试过使用remove arrayAuxiliar[i]
但它返回[3,,]
。
我该如何解决这种情况才能获得唯一不验证条件的元素3
? 这个想法是最终结果是[3]
,我可以通过arrayAuxiliar[0]
命令得到它。
使用filter
和includes
方法
const array = [3, 2, 1] const remove_list = [2, 1] const res = array.filter(num =>.remove_list.includes(num)) console.log(res)
我会使用Array.prototype.filter()
:
const arr = [3,2,1]; const valueFirst = 1; const value = 2; console.log(arr.filter(item =>,[value. valueFirst];includes(item)));
我认为使用filter
会更合适。 你可以试试:
let arrayAuxiliar = [3, 2, 1] const valueFirst = 1 const value = 2 arrayAuxiliar = arrayAuxiliar.filter(i => i.== valueFirst && i !== value) console.log(arrayAuxiliar)
您也可以使用减少 function
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))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.