陣列去重的方法

2021-10-22 15:26:42 字數 2351 閱讀 6628

方法一:用第三方庫underscore裡的方法,方便快捷

方法二:用es6的set方法,set方法的特點是元素不能重複

方法三:indexof方法,如果不包含這個元素,返回-1

方法四:陣列的filter過濾方法和indexof方法結合

方法五:利用物件的key值的唯一性,object.keys將乙個物件中的key值全部取到乙個陣列裡,此時陣列中的item都是string格式的,要轉換為數字

方法六:先陣列排序,相等的元素肯定會排在一起,比較相鄰的兩個元素,不相等的話,push到新陣列裡

方法七:兩層for迴圈,用乙個陣列元素和其後面的所有元素比較,相同的不push,不相同的push到新陣列

// //方法一:用第三方庫underscore裡的方法,方便快捷

// var arr = [2,4,5,6,2,4,5,7,8,9,100,300]

// function getuniqarray()

// getuniqarray() //[2, 4, 5, 6, 7, 8, 9, 100, 300]

//方法二:用es6的set方法,set方法的特點是元素不能重複

// var arr = [2,4,5,6,2,4,5,7,8,9,100,300]

// function getuniqarray() ,要用array.from轉變為陣列,展開運算子也可以[...new set(arr)]

// console.log(result)

// }

// getuniqarray() //[2, 4, 5, 6, 7, 8, 9, 100, 300]

//方法三:indexof方法,如果不包含這個元素,返回-1

// var arr = [2,4,5,6,2,4,5,7,8,9,100,300]

// function getuniqarray()

// })

// console.log(result)

// }

// getuniqarray() //[2, 4, 5, 6, 7, 8, 9, 100, 300]

//方法四:陣列的filter過濾方法和indexof方法結合

// var arr = [2,4,5,6,2,4,5,7,8,9,100,300]

// function getuniqarray() )

// console.log(result)

// }

// getuniqarray() //[2, 4, 5, 6, 7, 8, 9, 100, 300]

//方法五:利用物件的key值的唯一性,object.keys將乙個物件中的key值全部取到乙個陣列裡,

//此時陣列中的item都是string格式的,要轉換為數字

// var arr = [2,4,5,6,2,4,5,7,8,9,100,300]

// function getuniqarray()

// arr.foreach((item,index) => )

// result = object.keys(result).map(item => parseint(item))

// console.log(result)

// }

// getuniqarray() //[2, 4, 5, 6, 7, 8, 9, 100, 300]

//方法六:先陣列排序,相等的元素肯定會排在一起,比較相鄰的兩個元素,不相等的話,push到新陣列裡

// var arr = [2,4,5,6,2,4,5,7,8,9,100,300]

// function getuniqarray()

// }

// //result排序一下

// result = result.sort((a,b)=>)

// console.log(result)

// }

// getuniqarray() //[2, 4, 5, 6, 7, 8, 9, 100, 300]

//方法七:兩層for迴圈,用乙個陣列元素和其後面的所有元素比較,相同的不push,不相同的push到新陣列

var arr = [2,4,5,6,2,4,5,7,8,9,100,300]

function getuniqarray()

}result.push(arr[i])

}console.log(result)

}getuniqarray() //[6, 2, 4, 5, 7, 8, 9, 100, 300]

第六種和第七種方法現在很少用了,但是面試的時候還是要回答出來,考察演算法

僅記錄

陣列去重方法

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