// 1.封装一个数组去重 功能:只能是数组去重 把新数组和旧数组中一样的值取出来放到新数组中去 参数:对谁去重(不知道所有要传入一个参数) 既然是数组去重我们要传入一个参数的 返回值:我们数组去重后的新数组要返回 回来
//解决思路;我们要拿这旧数组去遍历新数组使用双层for循环 就可以去遍历新数组的每一个元素了 如果新数组和就旧数组中相等就说明他们中重复得值了 如果不相等则说明没有重复的值 就可以吧旧数组中的值给到新数组当中即可
function getBack(arr) {
var newArry = [] //声明一个空数组用于返回新的数组
newArry[0] = arr[0] //这里为了方便 我们吧arr里面的第一个元素赋值给newArry的第一个元素 这时候newArry就存在有元素了 不然无法去遍历新数组的 因为j < newArry.length里面是空的 新数组里面的条件为false就直接跳过for内循环了
var flag = true //这里声明了一个flag变量 开始值为true,代表着如果flag=true就说明里面没有重复的值 如果flag=false就说明有重复的值
for (var i = 0; i < arr.length; i++) {
for (var j = 0; j < newArry.length; j++) {
if (arr[i] == newArry[j]) { //如果旧数组和新数组进入到if语句里面了就说明有重复的值
flag = false //有重复的值就赋值为 false 不让旧数组的值给到新数组里面
break; //有重复的值了我们就不需要在进行下一轮循环比较了 直接退出内循环了 代码在接着往下走
}
}
if (flag) { //flag等于true的时候才会进入到if语句里面吧旧数组的值赋值给新数组里面 如果为flase则不进入
newArry[newArry.length] = arr[i]
}
flag = true //第一个判断完毕后要吧flag重新赋值为true不然,你永远只能传回第一个值 后面的都进不来了
}
return newArry
}
var arr = [1, 2, 3, 4, 5, 5, 4, 3, 2, 1, 7, 8, 9, 1, 1, 1, 1, 2, 2, 90, 40] //1, 2, 3, 4, 5, 7, 8, 9, 90, 40
var reslut = getBack(arr)
console.log(reslut);
数组去重
最新推荐文章于 2022-12-03 15:27:23 发布