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