我们在平时开发的过程中,经常会遇到数组去重的问题,今天我们就来聊聊数组如何实现去重
const arr = [1,2,3,4,5,6,3,2,3,4,2]
比如上面这样的数组,我们来去重
常用方法-双循环去重
思路:遍历数组,将第一个数与后面的数字依次作比较,如果相同则删除,如果不同则继续,以此类对遍历完这个数组后,就可以实现去重的效果
function unique(arr){
// 深拷贝
const data = JSON.parse(JSON.stringify(arr))
// 遍历
for (let i = 0; i < data.length; i++) {
for (let j = i+1; j < data.length; j++) {
// 判断是否重复,如果是则删除,并保持下标不变
if (data[i] === data[j]) {
data.splice(j,1)
j--;
}
}
}
return data
}
const uniqueArr = unique(arr)
console.log(arr,uniqueArr) //[1,2,3,4,5,6,3,2,3,4,2],[1,2,3,4,5,6]
Set方法
那es6中定义了一种全新的数据类型,使用它可以方便你的实现数据的去重,一行代码便可以实现
const uniqueArr = [...new Set(arr)]
uniqueArr // [1,2,3,4,5,6]
indexOf方法
function unique(arr) {
const data = []
for (let i = 0; i < arr.length; i++) {
if (data.indexOf(arr[i]) === -1) {
data.push(arr[i])
}
}
return data
const uniqueArr = unique(arr)
uniqueArr // [1,2,3,4,5,6]
抛转引入,如果你有更好的方法,果断分享在留言里哦~
最后 🙌
好啦,以上就是我本次分享的全部内容啦,如果你觉得我的文章对你有一丢丢帮助,那么请不要吝啬你的赞👍哦,阿门~
网友评论