js數組去重的方法匯總_javascript技巧
三種方法
利用indexOf判斷新陣列
underscore.js中其實也是使用的類似的indexOf
//传入数组 function unique1(arr){ var tmpArr = []; for(var i=0; i<arr.length; i++){ //如果当前数组的第i已经保存进了临时数组,那么跳过, //否则把当前项push到临时数组里面 if(tmpArr.indexOf(arr[i]) == -1){ tmpArr.push(arr[i]); } } return tmpArr; }
利用indexOf判斷舊數組
function unique2(arr){ var tmpArr = []; //结果数组 for(var i=0; i<arr.length; i++){ //如果当前数组的第i项在当前数组中第一次出现的位置不是i, //那么表示第i项是重复的,忽略掉。否则存入结果数组 if(arr.indexOf(arr[i]) == i){ tmpArr.push(arr[i]); } } return tmpArr; }
利用hash查找
這裡利用了JS物件的實作就是hash表的特性
function unique3(arr){ var tmpArr = [], hash = {};//hash为hash表 for(var i=0;i<arr.length;i++){ if(!hash[arr[i]]){//如果hash表中没有当前项 hash[arr[i]] = true;//存入hash表 tmpArr.push(arr[i]);//存入临时数组 } } return tmpArr; }
陣列擴充
Array.prototype.unique1 = function (){ var tmpArr = []; for (var i = 0; i < this.length; i++){ if (tmpArr.indexOf(this[i]) == -1){ tmpArr.push(this[i]); } } return tmpArr; } Array.prototype.unique2 = function(){ var tmpArr = []; //结果数组 for(var i = 0; i < this.length; i++){ if (this.indexOf(this[i]) == i){ tmpArr.push(this[i]); } } return tmpArr; } Array.prototype.unique3 = function(){ var tmpArr=[], hash = {}; for(var i = 0; i < this.length; i++){ if (!hash[this[i]]){ hash[this[i]] = true; tmpArr.push(this[i]); } } return tmpArr; }
使用Set
Set和Map是ES6新增的資料結構
Set直接可以儲存不重複的一組key,這個key也可以是物件,字串等
建立set
var s = new Set([1, 2, 3,]); s; // Set {1, 2, 3}
新增元素
>>> s.add(4) >>> s {1, 2, 3, 4} >>> s.add(4) >>> s {1, 2, 3, 4}//重复元素不会被添加
刪除元素
s; // Set {1, 2, 3, 4} s.delete(3); s; // Set {1, 2, 4}
遍歷元素
Map和Set無法使用下標
ES6標準引進了新的iterable類型,Array、Map和Set都屬於iterable類型
var s = new Set(['A', 'B', 'C']); for (var x of s) { // 遍历Set alert(x); }
或直接使用iterable內建的forEach方法
forEach方法是ES5.1標準引入的
var s = new Set(['A', 'B', 'C']); s.forEach(function (element, set) { alert(element); });
以上所述就是本文的全部內容了,希望大家能夠喜歡。

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

PHP的array_unique()函數用來移除陣列中重複元素,其預設使用嚴格相等(===)。我們可以透過自定比較函數來指定去重依據:建立自定比較函數,指定去重的標準(例如根據元素長度);將自訂比較函數作為第三個參數傳遞給array_unique()函數,即可根據指定的標準移除重複元素。

es5中可以利用for語句和indexOf()函數來實現數組去重,語法“for(i=0;i<數組長度;i++){a=newArr.indexOf(arr[i]);if(a== -1){...}}」。在es6中可以利用擴充運算子、Array.from()和Set來去重;需要先將陣列轉為Set物件來去重,然後利用擴充運算子或Array.from()函數來將Set物件轉回數組即可。

PHP陣列去重後保持鍵值對應的方法有:使用array_unique()函數去除重複值,再用array_flip()函數交換鍵值對。將原始數組與去重後的數組合並,使用數值組合並的方法來保留鍵值對應。

在PHP中,使用array_unique()函數,根據特定鍵值對移除陣列重複項。呼叫函數時傳入數組作為參數,選擇排序方式作為第二個參數。此函數傳回一個新數組,其中重複項已根據指定的鍵值對移除。

PHP陣列去重時處理空值和null值的技巧:使用array_unique搭配array_filter過濾空值和null值。使用array_unique並定義自訂比較函數,將空值和null值視為相等。使用array_reduce遍歷數組,並在不包含空值或null值的情況下新增項目。

PHP中排除重複陣列的方法:1、建立一個PHP範例檔案;2、定義待去重的陣列為“$oldArr”,去重後的新陣列為“$newArr”;3、使用“array_unique()”函數會移除數組中重複元素,並傳回去重後的數組,其程式碼為「$newArr = array_unique($oldArr);」即可排除;4、還可以透過for迴圈的方式進行去重。

php去掉數組內重複元素的方法:1、使用「array_unique()」函數,去除數組中的重複資料;2、透過foreach循環遍歷,透過定義一個新的數組儲存不重複的資料的方法實現去重; 3.使用array_flip()和array_keys()函數,可得到去重後的陣列;4、使用array_filter()函數,透過使用函數結合匿名函數的方式對原始陣列進行去重。

方法:1、利用「[...new Set(arr)]」語句;2、利用「Array.from(new Set(arr))」語句;3、利用filter和indexOf函數;4、利用雙重for循環,檢查值是否重複,如果有重複就使用push()刪除。
