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 }
如有错误 可指出修改 谢谢
上一篇:
通过多线程提高代码的执行效率例子