陣列去重(至少兩種方法)js

2021-10-10 04:35:23 字數 2483 閱讀 1095

新建乙個陣列,遍歷去要重的陣列,當值不在新陣列的時候(indexof為-1)就加入該新陣列中。

//方法1:普通版,利用indexof去重

function arrayunique(arr)

}return res;

}var arr = [1, 1, 'hi', 'true', 'true', true, 15, 15, 15];

console.log(arrayunique(arr)); //[ 1, 'hi', 'true', true, 15 ]

建立乙個空map資料結構,遍歷需要去重的陣列,把陣列的每乙個元素作為key存到map中。由於map中不會出現相同的key值,所以最終得到的就是去重後的結果。
map是es6 提供的新的資料結構。 

map 物件儲存鍵值對。任何值(物件或者原始值) 都可以作為乙個鍵或乙個值。以下是map物件的方法:

// 方法2:hashmap

function arrayunique2(arr)

}return res;

}var arr = [1, 1, 'hi', 'true', 'true', true, 15, 15, 15];

console.log(arrayunique2(arr)); //[ 1, 'hi', 'true', true, 15 ]

array.from( set物件 )  可以把set轉成陣列。

es6 新增了set這一資料結構,類似於陣列,區別在於它所有的成員都是唯一的,不能有重複的值

語法:

array.from(arraylike[, mapfn[, thisarg]])
示例**:

//方法3:使用 set 進行陣列去重

// 使用 set 完成 陣列去重,只能去除字串和數字的重複,不能去除物件的重複

function uniqueset(array)

//或function uniqueset2(array)

var arr = [1, 1, 'hi', 'true', 'true', true, 15, 15, 15];

console.log(uniqueset(arr)); //[ 1, 'hi', 'true', true, 15 ]

將兩個陣列拼接為乙個陣列,然後使用 es6 中的 array.filter() 遍歷陣列,並結合 indexof 來排除重複項。

array.filter(function(currentvalue,index,arr), thisvalue)
引數說明:

array.indexof(item,start)
引數

描述item

必須。查詢的元素。

start

可選的整數引數。規定在陣列中開始檢索的位置。它的合法取值是 0 到 stringobject.length - 1。如省略該引數,則將從字串的首字元開始檢索。

// 方法4:使用 filter

function uniquefilter(arr) );

return res;

}var arr = [1, 1, 'hi', 'true', 'true', true, 15, 15, 15];

console.log(uniquefilter(arr)); //[ 1, 'hi', 'true', true, 15 ]

// 方法5:原型方法

array.prototype.unique = function ()

});return newarray;}

// 方法6:精簡版 使用 filter 和 indexof 結合實現

array.prototype.unique = function () )

}

js陣列去重的兩種方法

陣列去重這種問題經常會遇到,解決方法也有很多,這裡就總結兩種比較常用的方法。方法一第一種方法的思路 遍歷陣列裡的元素,由第乙個元素開始依次按照順序與其後面的元素相比較,如果不同則不用管,相同則把其後所被比較的元素去除。這樣所有元素迴圈一遍,陣列中重複的元素就能全部去除。var arr 1,5,7,6...

js 陣列去重多種方法

var arr 1,2,3,2,1,2,1,34,44 方法一 利用jquery unique var newarr unique arr 方法二 利用indexof去重 var newarr for var i 0 i if newarr.indexof arr i 1 return newarr...

兩種陣列去重的方法

1 this的用法 思路 構建乙個空陣列存放結構 構建乙個空物件,巧妙之處 將取得的原陣列的值設為物件的屬性,並設定其值為乙個數值,for迴圈時,如果該值存在則 json this i 為false,array.prototype.unique3 function for var i 0 i thi...