JS遍歷陣列,實現陣列去重(重複的元素只保留乙個)

2022-02-02 14:58:43 字數 2255 閱讀 5641

1.遍歷陣列法

它是最簡單的陣列去重方法(indexof方法)

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

var arr=[2,8,5,0,5,2,6,7,2];

function unique1(arr)

} return hash;

}

2.陣列下標判斷法

呼叫indexof方法,效能和方法1差不多

實現思路:如果當前陣列的第 i 項在當前陣列中第一次出現的位置不是 i,那麼表示第 i 項是重複的,忽略掉。否則存入結果陣列。

function unique2(arr)

} return hash;

}

3.排序後相鄰去除法

實現思路:給傳入的陣列排序,排序後相同的值會相鄰,然後遍歷排序後陣列時,新陣列只加入不與前一值重複的值。

function unique3(arr)

} return hash;

}

4.優化遍歷陣列法(推薦)

實現思路:雙層迴圈,外迴圈表示從0到arr.length,內迴圈表示從i+1到arr.length

將沒重複的右邊值放入新陣列。(檢測到有重複值時終止當前迴圈同時進入外層迴圈的下一輪判斷)

function unique4(arr)

}hash.push(arr[i]);

} return hash;

}

5.es6實現

基本思路:es6提供了新的資料結構set。它類似於陣列,但是成員的值都是唯一的,沒有重複的值。

set函式可以接受乙個陣列(或類似陣列的物件)作為引數,用來初始化。

function unique5(arr)

擴充套件:如果重複,則去掉該元素

陣列下標去重

function unique22(arr)

} return hash;

}

1.遍歷陣列法

它是最簡單的陣列去重方法(indexof方法)

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

var arr=[2,8,5,0,5,2,6,7,2];

function unique1(arr)

} return hash;

}

2.陣列下標判斷法

呼叫indexof方法,效能和方法1差不多

實現思路:如果當前陣列的第 i 項在當前陣列中第一次出現的位置不是 i,那麼表示第 i 項是重複的,忽略掉。否則存入結果陣列。

function unique2(arr)

} return hash;

}

3.排序後相鄰去除法

實現思路:給傳入的陣列排序,排序後相同的值會相鄰,然後遍歷排序後陣列時,新陣列只加入不與前一值重複的值。

function unique3(arr)

} return hash;

}

4.優化遍歷陣列法(推薦)

實現思路:雙層迴圈,外迴圈表示從0到arr.length,內迴圈表示從i+1到arr.length

將沒重複的右邊值放入新陣列。(檢測到有重複值時終止當前迴圈同時進入外層迴圈的下一輪判斷)

function unique4(arr)

}hash.push(arr[i]);

} return hash;

}

5.es6實現

基本思路:es6提供了新的資料結構set。它類似於陣列,但是成員的值都是唯一的,沒有重複的值。

set函式可以接受乙個陣列(或類似陣列的物件)作為引數,用來初始化。

function unique5(arr)

擴充套件:如果重複,則去掉該元素

陣列下標去重

function unique22(arr)

} return hash;

}

js 遍歷陣列 1 1

every如果每項返回值都為true,則返回true currentvalue 必須。當前元素的值 index 可選。當前元素的索引值 arr 可選。當前元素屬於的陣列物件 thisvalue 可選。用作 this 的值。array.every function currentvalue,index...

js遍歷陣列(物件)

例 let arr 1,2,3 for let i 0 iconsole.log arr i 輸出結果 1 2 3 例 let arr 1,2,3 for let i in arr 輸出結果 1 2 3 說明 同普通for迴圈,以key遍歷查詢陣列或物件 例 let arr 1,2,3 for le...

JS實現陣列去重(重複的元素只保留乙個)

1.遍歷陣列法 它是最簡單的陣列去重方法 indexof方法 實現思路 新建乙個陣列,遍歷去要重的陣列,當值不在新陣列的時候 indexof為 1 就加入該新陣列中 var arr 2,8,5,0,5,2,6,7,2 function unique1 arr return hash 2.陣列下標判斷...