javascript - 删除Array中一个元素,并且不作多余的遍历
本文介绍了javascript - 删除Array中一个元素,并且不作多余的遍历的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
try{
//是否跳出循环
let breakloop = false;
this.commitList = this.commitList.filter((arg)=>{
//是否跳出循环
if(breakloop)
throw new error("break");
//如果找到要删除的元素
if(arg == check.id)
//设为true 则下一次Loop会抛出异常
breakloop = true;
//找到元素 会返回false,在filter遍历中返回false会'删除'该元素
return arg != check.id
})
}catch(e){
console.log(e.message)
}
commitList是一个Array ,
假设
commitList[1,2,3,4,5,6]
check.id = 1
希望在找个1之后就不再进行下面的遍历,但是filter遍历不允许使用break字段
解决方法:
找到要删除的元素之后,抛出异常,强行跳出遍历
遇到问题:
跳出遍历后,数组还是维持不变(没有删除应该删除的元素),
可能是强行跳出打断了filter的工作?
请问有更好的方法吗? 既可以删除元素,又不需要全数组遍历..
解决方案
为什么不用
Array.prototype.some()
https://developer.mozilla.org...
let commitList = [1,2,3,4,5,6]
commitList.some(function(item, index) {
if (item === 1) {
commitList.splice(index, 1)
return true
}
})
这篇关于javascript - 删除Array中一个元素,并且不作多余的遍历的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文