去重的时候用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的时候跳出循环,求教应该如何写呢。。。。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
forEach函数不支持break,可以用every函数替代:return false跳出循环,return true继续循环,详见 https://developer.mozilla.org...https://segmentfault.com/q/10...
forEach没办法终止(异常除外。)
貌似可以加标签,可以跳回标签处,待我去验证下!
使用 every 和 some 函数
当条件满足时,结果确是不正确的。它会循环完所有项!