javascript - js中forEach跳出循环问题
本文介绍了javascript - js中forEach跳出循环问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
去重的时候用for循环是没什么问题的
var arr=[2,3,2,2,2,4,5],
arr2=[];
function find(arr2,ele){
for(var i= 0,len=arr2.length;i<len;i++){
if(arr2[i]==ele) return true;
}
return false;
}
for(var i= 0,len=arr.length;i<len;i++){
if(!find(arr2,arr[i])){
arr2.push(arr[i]);
}
}
改用forEach的时候
function find(arr2,ele){
arr2.forEach(function(item,i){
if(item==ele) return true;
});
return false;
}
arr.forEach(function(item,i,array){
if(!find(arr2,arr[i])){
arr2.push(arr[i]);
}
})
发现结果不对forEach貌似没有在return的时候跳出循环,求教应该如何写呢。。。。
解决方案
forEach
函数不支持break
,可以用every
函数替代:
function find(arr2, ele) {
arr2.every(function (item, i) {
if (item === ele) {
return false
}
return true
})
}
return false
跳出循环,return true
继续循环,详见 https://developer.mozilla.org...
这篇关于javascript - js中forEach跳出循环问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文