zl程序教程

您现在的位置是:首页 >  其他

当前栏目

企业面试真题--015

企业面试 -- 真题 015
2023-09-14 09:02:35 时间

var arr1= [1,1,1,2,3,3,4,5,6], arr2=[4,4,4,5,5,6,7,8,8,9];

编写函数实现数组合并去重:arr = [1,2,3,4,5,6,7,8,9]

function mergeArr(a1, a2){
    //利用对象的hash去重
    var temp = {};
    //找到长度较大的数组
    var len = Math.max(a1.length, a2.length);
    for(var i=0; i<len; i++){
        //用一个循环遍历2个数组, 因为不能保证数组长度一致
        //因此需要判断是否为空
        //若不为空, 则以key的形式添加到temp中
        a1[i]?temp[a1[i]] = 1:"";
        a2[i]?temp[a2[i]] = 1:"";
    }
    //将对象的key全部取出,则是最终去重合并后的数组
    //但是取出的key都是字符串类型, 要还原成数字的话
    //借助map方法
    return Object.keys(temp).map(Number); 
}