數組查重
1、純數組(不含對象或子數組)
var array = [1,2,3,3,4,5]; console.log(Array.from(new Set(array))) //輸出 [1, 2, 3, 4, 5]
2、含對象或子數組的
function ret(arr) { const res = []; const json = {}; for (let i = 0; i < arr.length; i++) { if (!json[arr[i].id]) { res.push(arr[i]); json[arr[i].id] = arr[i].id; } } return res; } const arr = [ { id: 1, name: "張三" }, { id: 1, name: "張三" } ]; ret(arr);
3、去重并且合并對象
function ret(arr) { const res = []; const json = {}; for (let i = 0; i < arr.length; i++) { var ai = arr[i]; if (!json[ai.id]) { res.push(ai); json[ai.id] = ai.id; }else{ for (var j = 0; j < res.length; j++) { var dj = res[j]; if (dj.id=== ai.id) { dj.val = dj.val.concat(ai.val); // 也可以寫其它合并代碼 break; } } } return res; } const arr = [ { id: 1, name: "張三", val: [ a: 1 ] }, { id: 1, name: "張三", val: [ b: 2 ] } ]; ret(arr);

浙公網安備 33010602011771號