美文网首页
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