陣列去重的多種方法

2021-09-26 11:55:56 字數 3954 閱讀 7735

1.將陣列的每乙個元素依次與其他元素做比較,發現重複元素,利用陣列方法splice()刪除重複元素

var arr =[1

,23,1

,1,1

,3,23

,5,6

,7,9

,9,8

,5,5

,5,5

];function

norepeat

(arr)}}

return arr;

}var arr2 =

norepeat

(arr)

; console.

log(arr2)

;//[1, 23, 3, 5, 6, 7, 9, 8]

2.使用雙層迴圈改變原陣列

var arr =[1

,1,2

,2,3

,3,4

,4,5

,5,4

,3,1

,2,6

,6,6

,6];

console.

log(arr)

;function

norepeat

(arr)}}

return arr;

}var arr2=

norepeat

(arr)

; console.

log(arr2)

;//[1, 2, 3, 4, 5, 6]

3.借助新陣列,判斷新陣列中是否存在該元素如果不存在則將此元素新增到新陣列中(原陣列長度不變但被按字串順序排序

var arr =[1

,23,1

,1,1

,3,23

,5,6

,7,9

,9,8

,5];

console.

log(arr)

;function

norepeat

(arr)

}return temp;

}var arr2=

norepeat

(arr)

; console.

log(arr2)

;//[1, 23, 3, 5, 6, 7, 8, 9]

4.建立乙個新陣列,判斷新陣列中是否存在該元素如果不存在則將此元素新增到新陣列中

var arr =[1

,23,1

,1,1

,3,23

,5,6

,7,9

,9,8

,5];

console.

log(arr)

;function

norepeat

(arr)

}return temp;

}var arr2=

norepeat

(arr)

; console.

log(arr2)

;//[1, 23, 3, 5, 6, 7, 9, 8]

5.借助indexof()方法判斷此元素在該陣列中首次出現的位置下標與迴圈的下標是否相等

var arr =[1

,23,1

,1,1

,3,23

,5,6

,7,9

,9,8

,5,5

,5];

console.

log(arr)

;function

norepeat

(arr)

}return arr;

}var arr2 =

norepeat

(arr)

; console.

log(arr2)

;//[1, 23, 3, 5, 6, 7, 9, 8]

6.建立乙個新陣列 通過indexof方判斷當前元素在陣列中的索引如果與迴圈的下標相等則新增到新陣列中

var arr =[1

,23,1

,1,1

,3,23

,5,6

,7,9

,9,8

,5,5

,5];

console.

log(arr)

;function

norepeat

(arr)

}return temp;

}var arr2=

norepeat

(arr)

; console.

log(arr2)

;//[1, 23, 3, 5, 6, 7, 9, 8]

7.利用陣列中的filter方法

var arr =[,

"banana"

,"pear",,

"orange"

,"orange"];

console.

log(arr)

;var arr2 =arr.

filter

(function

(value,index,self));

console.

log(arr2)

;

8.利用空物件來記錄新陣列中已經儲存過的元素

var arr =[1

,23,1

,1,1

,3,23

,5,6

,7,9

,9,8

,5,5

,5];

console.

log(arr)

;var obj=

;var arr2=

;for

(var i=

0;iconsole.

log(arr2)

;//[1, 23, 3, 5, 6, 7, 9, 8]

9.借助兩個新陣列

var arr =[1

,1,2

,2,3

,3,4

,4,5

,5,4

,3,2

,1,1

,1];

console.

log(arr)

;var arr2=

;for

(var i=

0;i// console.log(arr3);

if(arr3.length ==0)

} console.

log(arr2)

;//[5, 4, 3, 2, 1]

10.此方法沒有借助新陣列直接改變原陣列,並且去重後的陣列被排序

var arr =[1

,23,1

,1,1

,3,23

,5,6

,7,9

,9,8

,5];

console.

log(arr)

;function

norepeat

(arr)

else

}return arr;

}var arr2=

norepeat

(arr)

; console.

log(arr2)

;//[1, 23, 3, 5, 6, 7, 8, 9]

陣列去重的方法其實不難,但是思路卻是特別重要。以上是我所知道的一些方法,如果有錯或者更好方法可以分享出來,謝謝。

陣列去重的多種方法

陣列去重的方法有很多,廢話不多說下面只寫3種,分別是從複雜到簡單 1.利用foreach進行輪詢需要去重的陣列,然後通過判斷新陣列 這個新陣列需要在輪詢之前建立乙個空陣列 中是否包含進行新增不重複的每一項得到新陣列 此方法的缺點 function removedup arry return noma...

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...

手寫陣列去重,多種方法

var arr 1,23,1,1,1,3,23,5,6,7,9,9,8,5,5,5,5 function norepeat arr return arr var arr2 norepeat arr console.log arr2 1,23,3,5,6,7,9,8 var arr 1 1,2 2,3...