// es6 set去重方法1
function unique ( arr ) {
return Array.form(new Set(arr))
}
var arr = ['1','2','2']
console.info(unique(arr))
// splice去重 方法2
function unique (arr) {
for (let i = 0; i < arr.length; i++) {
for (let j=i+1; j< arr.length; j++) {
if (arr[i] == arr[j]) {
arr.splice(j,1)
j--
}
}
}
return arr
}
var arr = [1,1,2,2,null, undefined,undefined]
console.info(unique(arr))
// indexOf去重 方法3
function unique (arr) {
if (!Array.isArray(arr)) {
console.info('type error')
return
}
var newArr = []
for (let i = 0; i < arr.length; i++) {
if (newArr.indexOf(arr[i]) === '-1') {
newArr.push(arr[i])
}
}
return newArr
}
var arr = [1,1,2,2,null, undefined,undefined]
console.info(unique(arr))
// sort 去重 方法4
function unique (arr) {
if (!Array.isArray(arr)) {
console.info('type error')
return
}
arr = arr.sort()
var newArr = arr[0]
for (let i = 0; i < arr.length; i++) {
if (arr[i] != arr[i-1]) {
newArr.push(arr[i])
}
}
return newArr
}
var arr = [1,1,2,2,null, undefined,undefined]
console.info(unique(arr))
// includes 去重 方法5
function unique (arr) {
if (!Array.isArray(arr)) {
console.info('type error')
return
}
var newArr = []
for (let i = 0; i < arr.length; i++) {
if (!newArr.includes(arr[i])) { // 检测数组是否有某个值
newArr.push(arr[i])
}
}
return newArr
}
var arr = [1,1,2,2,null, undefined,undefined]
console.info(unique(arr))
// filter 去重 方法7
function unique (arr) {
return arr.filter(function(item,index,arr){
return arr.indexOf(item, 0) === index
})
}
var arr = [1,1,2,2,null, undefined,undefined]
console.info(unique(arr))
// reduce+includes 去重 方法8
function unique (arr) {
return arr.reduce((prev,cur) => prev.includes(cur) ? prev :[...prev,cur],[])
}
var arr = [1,1,2,2,null, undefined,undefined]
console.info(unique(arr))