JavaScript 数组去重方法合集(简洁易懂)
JavaScript数组去重
JavaScript去重的七种方法 简单易懂 方法一:暴力去重法
// 暴力去重法
function ArrayIsUnique (array) {
if (!Array.isArray(array)) return;
for (let i = 0; i < array.length; i++) {
for (let j = i + 1; j < array.length; j++) {
if (array[i] === array[j]) {
array.splice(j, 1)
}
}
}
return array
}
方法二:Set方法
// Set方法去重
function ArrayIsUnique2 (array) {
if (!Array.isArray(array)) return;
const map = new Set(array)
return Array.from(map)
}
方法三:Map方法
// Map方法去重
function ArrayIsUnique3 (array) {
if (!Array.isArray(array)) return;
const map = new Map()
array.forEach(item => map.set(item, item))
return Array.from(map.values())
}
方法四:先排序再去重
// 先排序再去重
function ArrayIsUnique4 (array) {
if (!Array.isArray(array)) return;
array.sort()
for (let i = 0; i < array.length; i++) {
if (array[i] === array[i + 1]) {
array.splice(i, 1)
}
}
return array
}
方法五:indexof方法去重
// 定义一个新数组 如果没有就存进去
function ArrayIsUnique5 (array) {
if (!Array.isArray(array)) return;
const arr = []
array.forEach(item => {
if (arr.indexOf(item) === -1) {
arr.push(item)
}
})
return arr
}
方法六:使用includes方法
function ArrayIsUnique6 (array) {
if (!Array.isArray(array)) return;
const arr = []
array.forEach(item => {
if (!arr.includes(item)) {
arr.push(item)
}
})
return arr
}
方法七:filter方法
function ArrayIsUnique7 (array) {
if (!Array.isArray(array)) return;
let arr = array.map(item => item)
array.forEach(item => {
arr = arr.filter(i => item !== i)
arr.push(item)
})
return arr
}
如有错误 可指出修改 谢谢
上一篇:
通过多线程提高代码的执行效率例子
