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