美文网首页
javaScript—算法

javaScript—算法

作者: Aaron阿槑与阿瓜 | 来源:发表于2017-12-20 13:09 被阅读0次

    消除多维数组中的重复数

    //思考:先考虑一维数组,然后在判断一维数组里可能会出现多维数组的情况,然后用递归,处理每一个arr【i】 是数组的情况
    //方法一:
    var num=["a","a",[1,1,1,1,1],[2,2,2,2]]
    function delerepeat(arr)
    {
        if(arr instanceof Array == false)
        {
            return;
        }
        var newarr=[];
        for(var i=0;i<arr.length;i++)
        {
            if(arr[i] instanceof Array)
            {
                newarr.push(delerepeat(arr[i]));
            }else
            {
                var flag=true;
                for(var j=i+1;j<arr.length;j++)
                {
                    if(arr[i]==arr[j]){
                        flag=false;
                        break;
                    }
                }
                if(flag)
                {
                    newarr.push(arr[i]);
                }
            }
            
        }
        return newarr;
    }
    
    alert(delerepeat(num));
    

    //方法二:
    思考:利用一个数组与另外一个数组比较,如果要插入的数和newarr中数组元素不一样(或者说不存在),就插入,

    var num=["a","a",[1,1,1,1,1],[2,2,2,2]];    
    alert(delerepeat(num));
    function delerepeat(arr)
    {
        var newarr=[];
        for(var i=0;i<arr.length;i++)
        {
            if(arr[i] instanceof Array)
            {
                newarr.push(delerepeat(arr[i]));
            }else
            {
                var a=checkNum(newarr,arr[i]);
                if(a==true)
                {
                    newarr.push(arr[i]);
                }   
            }
            
        }
        return newarr;
    }
    function checkNum(newarr,num)
    {   
        var flag=true;
        for(var i=0;i<newarr.length;i++)
        {
            if(newarr[i]==num)
            {
                flag=false;
                break;
            }
        }
        return flag;
    }

    相关文章

      网友评论

          本文标题:javaScript—算法

          本文链接:https://www.haomeiwen.com/subject/wkrgwxtx.html