陣列去重的方法

2021-10-22 06:25:09 字數 3724 閱讀 9491

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]

陣列去重方法

1 es6提供了新的資料結構set,它類似於陣列,但是成員的值是唯一的,沒有重複的值。let arr 1,2,5,2,3,4,1,2,3,5,4,1,2,3,2,1,1,1,asd 123 123 123 asd 1,true,true,false console.log new set arr 或...

陣列去重方法

雙迴圈去重 雙重 for 或 while 迴圈是比較笨拙的方法,它的實現原理很簡單 先定義乙個包含原始陣列第乙個元素的陣列,然後遍歷原始陣列,將原始陣列中的每個元素與新陣列的每個元素進行比較,如果不重複則新增到新的陣列中,最後返回新的陣列,其缺點是如果陣列長度很長,那麼將會非常消耗記憶體 funct...

陣列去重方法

1.使用原生的filter和indexof來進行過濾和篩選。var filtered data.filter function item,index 複製 使用filter的第三個引數繫結this的值 var filtered2 data.filter function item,index,sel...