2024年11月27日 建站教程
今天web建站小编给大家介绍几种数组去重的方法,其中有es6语法写的,也有低版本浏览器兼容需要的写。
1、es6写法:利用Set
去重(写法最简单,但不兼容低版本)
const arr = [1,1,'ok','mi',3,3,'ok','mi',5,5]; const setData = Array.from(new Set(arr)); console.log(setData); //[1, 'ok', 'mi', 3, 5]
2、es6写法:利用includes
去重
const arr = [1,1,'ok','mi',3,3,'ok','mi',5,5]; const removeRepeatData = (arr) => { let repeatArr = []; for (let i = 0,len = arr.length ; i < len; i++) if (!repeatArr.includes(arr[i])) repeatArr.push(arr[i]) return repeatArr; } console.log(removeRepeatData(arr)) // [1, 'ok', 'mi', 3, 5]
3、es6写法:利用filter
去重,(需要和indexOf一起用)
const arr = [1,1,'ok','mi',3,3,'ok','mi',5,5]; const removeRepeatData = (arr) => arr.filter((item,index) => arr.indexOf(item,0) === index); console.log(removeRepeatData(arr)) // [1, 'ok', 'mi', 3, 5]
4、双重for循环去重(兼容低版本)
const arr = [1,1,'ok','mi',3,3,'ok','mi',5,5]; const removeRepeatData = (arr) => { for (let i=0,len = arr.length; i < len; i++) { for (let j = i + 1; j < len; j++) { if (arr[i] === arr[j]) { arr.splice(j, 1); j--; len--; } } } return arr; }; console.log(removeRepeatData(arr)) // [1, 'ok', 'mi', 3, 5]
5、indexOf去重(兼容低版本最合适,比双重for循环简单)
const arr = [1,1,'ok','mi',3,3,'ok','mi',5,5]; const removeRepeatData = (arr) => { let repeatArr = []; for (let i = 0,len = arr.length ; i < len; i++) if (repeatArr.indexOf(arr[i]) === -1) repeatArr.push(arr[i]) return repeatArr; } console.log(removeRepeatData(arr)) //[1, 'ok', 'mi', 3, 5]
本文链接:http://so.lmcjl.com/news/18576/