js二维数组去重

    var duplicate =function(arr){
        // 法一:es6
        // let res=new Map();
        // arr.forEach(item=>{
        //     item.sort((a,b)=>a-b);
        //     res.set(item.join(),item);
        // });        
        // return Array.from(res.values);

        // 法二:
        let res={}
        arr.forEach(item=>{
            item.sort((a,b)=>a-b);
            res[item]=item;
        });
        return Object.values(res)
    }

更新:2020-7-27

下面来测试对比一下哪种方法更快一些

我们将代码修改一下:

// 法一:
const duplicate1 =function(arr){
    let res=new Map();
    arr.forEach(item=>{
        item.sort((a,b)=>a-b);
        res.set(item.join(),item);
    });
    return Array.from(res.values);
}
// 法二:
const duplicate2 = function(){
    let res={}
    arr.forEach(item=>{
        item.sort((a,b)=>a-b);
        res[item]=item;
    });
    return Object.values(res)
}
const arr=[
    [1,2,3,4,5,6,7,8,9],
    [1,2,3,4,5,6,7,8,9],
    [2,3,4,5],
    [6,6,6,6]
]
console.time('duplicate1')
duplicate1(arr)
console.timeEnd('duplicate1')

console.time('duplicate2')
duplicate2(arr)
console.timeEnd('duplicate2')

node端执行结果

浏览器端执行结果

原文地址:https://www.cnblogs.com/xingguozhiming/p/9165198.html