JS 陣列去重(陣列元素是物件的情況)

2021-09-07 00:20:08 字數 839 閱讀 3239

js陣列去重有經典的 幾種方法

但當陣列元素是物件時,就不能簡單地比較了,需要以某種方式遍歷各值再判斷是否已出現。

因為:1.如果是雜湊判斷法,物件作雜湊表的下標,就會自動轉換成字元型型別,從而導致所有元素都相等,這時判斷方法不再有意義。一般最後陣列就只剩乙個

2.如果是直接比較法,則因為物件在記憶體中是按引用訪問的,屬性值相同的物件也不會相等,簡單的直接判斷不再有意義。一般最後陣列還是原樣

所以就需要進行值的比較

當然了,也可以換著法來將相應物件轉為字串(不是預設的那種[object object])

舉個例子:

var array =[,,

,,

];

假如需要按照屬性a,b為陣列進行去重

那麼最後將得到

array =[,,

];

//

將物件元素轉換成字串以作比較

function

obj2key(obj, keys)

return key.join('|');}//

去重操作

function

uniqebykeys(array,keys);

for (var i = 0, j = array.length; i < j; i++)

}return

arr ;

}

//

進行去重

var arr = uniqebykeys(array,['a','b']);

這種方式暫時還可以,當然了如果出現那種屬性和值組合正好有出現xx相同的那就xx了

js實現 氣泡排序 篩選陣列 陣列去重 陣列翻轉

氣泡排序 var arr 5,4,3,2,1 var arr 4 1,2 3,5 for var i 0 i arr.length 1 i console.log arr script 將陣列 2,0,6,1,77,0,52,0,25,7 中大於等於 10 的元素選出來,放入新陣列。1 宣告乙個新的...

陣列中的鍵值對去重 陣列去重

陣列去重 將陣列中重複的元素找出來並刪減為乙個。目的很簡單,方法倒有很多,以至於我費盡心思去考慮各種方法的好處壞處並進行對比,最終得出在各種場合適用的不同方法。希望有不同意見的儘管指出來。方法1 function unique1 array 原理 新定義乙個陣列,結合乙個物件輔助 時間複雜度 o 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...