原 js陣列物件去重最簡單的方法

2022-01-13 02:38:24 字數 965 閱讀 6392

簡單的陣列去重是比較簡單的,方法也特別多,如給下面的陣列去重:

let arr = [1,2,2,4,9,6,7,5,2,3,5,6,5]

最常用的可以用for迴圈套for迴圈,再用splice刪除重複的陣列:

let arrunique = function

(arr)}}

return

arr;

}

然而陣列的子集為物件時,一般不使用多個for迴圈來去重,如下面的陣列物件:

let arr = [,,

,]

通過觀察,我們可以發現該陣列中的第1、3、4項其實是一樣的,最初在谷歌找了幾個方法最終都不太滿意,比如會改變陣列中物件原來的排序、陣列去重失敗等,後來經過多次嘗試和實踐,得出以下最簡單的方法:

利用物件的鍵名無法重複的特點,我們可以新建乙個臨時物件來儲存原陣列中的物件子集的值,比如我的專案中mch_id是唯一的id,然後設定的它為臨時物件的鍵名,值為true即可,保證它的唯一性

通過判斷物件的鍵名是唯一時,把對應的陣列值新增到乙個空陣列中,最終得到乙個去重後的陣列物件

此方法不會改變陣列物件原有的排序

let arrunique = function

(arr);

let finalresult=;

for(let i=0;i)

return

finalresult;

}

或者利用es5陣列方法reduce

let arrunique = function

(arr);

arr = arr.reduce(function

(prevarr, currentitem) , )

return

arr;

}

提前祝大家勞動節快樂

JS陣列去重,物件去重

例項1根據indexof去重,indexof的好處就是返回的是首次出現的位置,這樣後面即使出現的值一樣,也只能返回第一次出現的索引,當然這個只適用於簡單的陣列 物件陣列去重 const objarr const obj const newobjarr for let i 0 i objarr.len...

JS陣列去重方法 支援物件陣列

陣列去重方法 1 支援基本資料型別組成的陣列 比如 let arr 1,5,6,6,1,true,true 6 1,1,5 呼叫 rd arr 返回 1,5,6,true,true 6 2 支援物件型別組成的陣列,但是要宣告是根據哪幾個物件屬性去進行判重的 比如 let arr 呼叫rd arr,n...

js 陣列物件去重

var arr 方法1 利用物件訪問屬性的方法,判斷物件中是否存在key var result var obj for var i 0 i const result const obj for let i 0 i data.length i console.log result result con...