js中陣列去重

2021-09-28 16:36:30 字數 2682 閱讀 3331

js中的陣列去重

1.建立乙個新陣列,把陣列中的每乙個元素插入到新陣列中

2.遍歷原陣列中每乙個元素分別和新陣列中的每乙個元素進行比較

第一種去重方法

//原陣列

var arr =[1

,2,5

,41,1

,2,1

,4,5

,8,10

]//新陣列

var t =

; t[0]

= arr[0]

;//arr中的每乙個元素

for(

var i =

0;i < arr.length; i ++

)//拿原陣列中的某個元素比較到新陣列中的最後乙個元素還沒有重複

if(j == t.length-1)

}}<

/script>

可以把陣列去重定義成函式

var arr1 =[1

,2,5

,41,1

,2,1

,4,5

,8,10

];function

arrayfilter

(arr)

if(j == newarray.length-1)

}}console.

log(newarray)

}arrayfilter

(arr1)

<

/script>

第二種方法 使用es6 中的 set函式

var arr = [1,2,5,41,1,2,1,4,5,8,10];

let t = array.from(new set(arr))

console.log(t)

var arr1 =[1

,3,4

,54,6

,4,23

,674,4

,2,1

,2,3

,80];

//宣告第乙個陣列

var arr2 =[1

,3,4

,6,78

,5,65

,6,5

,6,56

,5,75

,80];

//宣告第二個陣列

var arr3 =

;//宣告第三個空陣列,放第乙個陣列和第二個陣列相同的資料

for(

var i =

0;i } console.

log(

'取出兩個陣列中相同的元素'

,arr3)

<

/script>

結果:

由於新陣列中有重複的資料可以使用陣列去重把重複的資料去除。

console.log('對陣列arr3去重',array.from(new set(arr3)))

var arr1 =[1

,3,4

,54,6

,4,23

,674,4

,2,1

,2,3

,80];

//宣告第乙個陣列

var arr2 =[1

,3,4

,6,78

,5,65

,6,5

,6,56

,5,75

,80];

//宣告第二個陣列

// 獲得兩個陣列中不一樣的資料

function

getdifferent

(arr1,arr2))}

console.

log(

getdifferent

(arr1,arr2)

)<

/script>

**

var arr1 =[1

,3,4

,54,6

,4,23

,674,4

,2,1

,2,3

,80];

//宣告第乙個陣列

var arr2 =[1

,3,4

,6,78

,5,65

,6,5

,6,56

,5,75

,80];

//宣告第二個陣列

陣列arr1和陣列arr2合併成乙個新陣列。

console.

log(array.

from

(new

set(arr1.

concat

(arr2)))

)<

/script>

JS陣列去重,物件去重

例項1根據indexof去重,indexof的好處就是返回的是首次出現的位置,這樣後面即使出現的值一樣,也只能返回第一次出現的索引,當然這個只適用於簡單的陣列 物件陣列去重 const objarr const obj const newobjarr for let i 0 i objarr.len...

JS中陣列去重問題

js中陣列去重問題 我總共想出了三種演算法來實現這個目的 array.prototype.unique1 function return n array.prototype.unique2 function r n為hash表,r為臨時陣列 for var i 0 i this.length i 遍...

js中陣列如何去重

比較簡單的去重方法一 方法一 要呼叫indexof 如果當前陣列的第i項在當前陣列 現的位置不是i,那麼就是重複項,是i那就存入陣列 function arr num return temp var aa 1,2,2 4,9,a a 2,3,5,6,5 console.log arr aa 方法二 ...