人生与戏

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

方法一: 

        /*
         * 1.创建一个新数组,把原数组中的第一个元素插入到新数组中
         * 2.遍历原数组中的每一个元素分别和新数组中的每一个元素进行比较
         */
        //原数组
        var arr = [8,11,20,5,20,8,0,2,4,0,8];
        // 新数组
        var  t = [];//var  t = [8,11];
        t[0] = arr[0];
        //arr中的每个元素
        for(var i=0;i<arr.length;i++){
            //t中的每个元素
            for(var k = 0;k<t.length;k++){
                    
                //当原数组中的值和新数组中的值相同的时候,就没有必要再继续比较了,跳出内循环
                if(t[k] == arr[i]){
                break;
                }
             //拿原数组中的某个元素比较到新数组中的最后一个元素还没有重复
            if(k == t.length-1){
                    //将数据插入新数组
                    t.push(arr[i]);
                }
            }
        }
        console.log(t);    

方法二:

//每一个元素和其右边元素都对比下,如果相同,则删除后面那个元素
        var arrNew = [3,6,23,7,9,4,7,4];
        for( var i = 0 ; i < arrNew.length ; ++i){
            for( var j = i+1 ; j < arrNew.length; ++j){
                if(arrNew[i] == arrNew[j]){
                    arrNew.splice(j,1);
                    j--;
                }
            }
        }
        console.log(arrNew);

 

/* 
思路: 如果从左和从右 查找一个元素的 下标不一致,说明有重复的元素,
然后从原数组删除左边那个, for循环下标 减一,从当前位置重新开始判断
*/
function single(arr){
    for(var i=0; i<arr.length; i++){
        if(arr.indexOf(arr[i])!=arr.lastIndexOf(arr[i])){
            arr.splice(i,1);
            --i;
        }
    }
    return arr;
}            

 

方法三:
  放入集合中(集合会自动去重),然后再将集合中的元素组成新数组。

var arr=[3,6,23,7,9,4,7,4];
var set1=new Set(arr);
var new_arr=[];
for(let item of set1){
    new_arr.push(item);
}
console.log(new_arr); // [3, 6, 23, 7, 9, 4]

 

posted on 2018-10-28 09:58  人生与戏  阅读(637)  评论(0编辑  收藏  举报