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端执行结果

 

 

浏览器端执行结果


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM