数组去重一般是我们面试中必问的题目,那如何实现数组去重,下面就让我们来看看
1. 使用 ES6 中的 Set
方法实现数组去重
var arr = [1, 2, 3, 2, 3, 4, 5, 1, 2, 3, 4, 5, 6, 7]
console.log([...new Set(arr)])
console.log(Array.from(arr))
2. 使用 indexOf 方法实现数组去重
function fn(arr) {if (!Array.isArray(arr)) {return}
var newArr = []
for (var i = 0; i < arr.length; i++) {if (newArr.indexOf(arr[i]) === -1) {newArr.push(arr[i])
}
}
return newArr
}
var res = fn(arr)
console.log(res)
3. 双重 for 循环,使用 splice 实现数组去重
function fn(arr) {for (var i = 0; i < arr.length; i++) {for (var j = i + 1; j < arr.length; j++) {if (arr[i] === arr[j]) {arr.splice(j, 1)
j--
}
}
}
}
fn(arr)
console.log(arr)
4. 使用 includes 方法进行数组去重
function fn(arr) {if (!Array.isArray(arr)) {return}
var newArr = []
for (var i = 0; i < arr.length; i++) {if (!newArr.includes(arr[i])) {newArr.push(arr[i])
}
}
return newArr
}
var res = fn(arr)
console.log(res)