数组去重方法1,2

↘锁芯ラ 提交于 2019-11-28 01:27:21
第一种方法:写个判断是否相等的函数,然后调用这个函数生成一个新数组
function norepeat(arr) {
    var brr=[];
   for(var i=0;i<arr.length;i++){
       if(!fn(brr,arr[i])){     //brr,arr[i]是实参进入fn函数中,brr这个空数组与a[i],逐个相比,若不相同,则把这个a[i]放入brr数组中。
           //if(!fn(brr,arr[i])表示brr与arr[i]不相等时,因为if里面的条件为真才往下执行。
           //这里if里的条件是当brr与arr[i]不相同时往下执行。
             brr.push(arr[i])
       }
   }
    return brr;

}
var a=norepeat([3,8,6,5,48,9,5,89,56,5,8,46,5])
console.log(a);
function fn(ar,n) {           //这个函数就是用来比较两个数字是不是相等的,如果相等返回true(这里设置布尔值是为了给上面的if做判断)
    for(var i=0;i<ar.length;i++){
        if (ar[i]===n){
            return true
        }
    }
    return false;
}

第二种方法:将数组的每一个元素依次与其他元素做比较,发现重复元素,删除

var a=[5,6,5,8,4,8,54,8,4,4,4,4,4,4]
    for(var i=0;i<a.length;i++){
        for (var j=i+1;j<a.length;j++){
            if(a[i]==a[j]){
                a.splice(j,1)
                j--;
            }
        }
    }
    console.log(a)

 

 
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!