去重的时候用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
函数替代:return false
跳出循环,return true
继续循环,详见 https://developer.mozilla.org...