数组去重的方法

  1. ste (ES6)
  var arr = [1, 2, 3, 4, 4, 5, 6, 6, 6, 7, 8, 8, 9, 9, 0, 1, 2, 4];
   function updata(arr) {
            return Array.from(new Set(arr))
        }
   console.log(updata(arr)) //[1, 2, 3, 4, 5, 6, 7, 8, 9, 0]
  1. splice
    思路:利用for循环拿第一个和后面的比 如果发现有相同的 用 splice 方法去掉
  • splice 用法 :splice 修改 (下标开始位置,删除元素的长度,新增元素,…)
两个参数时
            var arr = [5,6,7,8,9];
            console.log(arr.splice(1,2)) // 6,7
            console.log(arr)//[5, 8, 9]
  var arr = [1, 2, 3, 4, 4, 5, 6, 6, 6, 7, 8, 8, 9, 9, 0, 1, 2, 4];
        function del(arr) {
            for (var i = 0; i < arr.length; i++) {
                for (var j = i + 1; j < arr.length; j++) {
                    if (arr[i] == arr[j]) {
                        arr.splice(j, 1);
                        i--;
                    }
                }
            }
            return arr;
        }
        console.log(del(arr)); //[1, 2, 3, 4, 5, 6, 7, 8, 9, 0]

  1. index of
    用法: indexof 元素,从哪个下标开始向右找} 查找在元素中第一次出现的下标位置如果没有找到返回-1
    思路: 利用了indexOf()方法(indexOf()方法如果查询到则返回查询到的第一个结果在数组中的索引,如果查询不到则返回-1)。先创建一个新的空数组用来存储新的去重的数组,然后遍历arr数组,在遍历过程中,分别判断newArr数组里面是不是有遍历到的arr中的元素,如果没有,直接添加进newArr中,
 var arr = [1, 2, 3, 4, 4, 5, 6, 6, 6, 7, 8, 8, 9, 9, 0, 1, 2, 4];
    var newArr = [];
    for(var i = 0 ; i < arr.length ; i++){
        if(newArr.indexOf(arr[i]) == -1){
            newArr.push(arr[i])
        }
    }
    console.log(newArr)  //[1, 2, 3, 4, 5, 6, 7, 8, 9, 0]
  1. includes
    用法: :
    includes() 方法用于判断字符串是否包含指定的子字符串。
    如果找到匹配的字符串则返回 true,否则返回 false。
 const testArray = [1,2,3,4,5];
 console.log(testArray.includes(1)) //true
 const testArray = [1,2,3,4,5]; //第二个参数为搜索的起始位置
 console.log(testArray.includes(1,2)) //false

思路:includes()方法来判断一个数组是否包含一个指定的值,根据情况,如果包含就返回true,不包含就返回false
Array.isArray() 用于确定传递的值是否是一个数组


function fn(arr){
	if(!Array.isArray(arr)){ //如果不是数组就报错
		console.log('type erreor')
		return
	}
	let array = []
	for(var i = 0; i < arr.length; i++){  
		if(array.indexOf(arr[i]) === -1){ 
			array.push(arr[i])
		}
	}
	return array
}
console.log(fn(arr))  //[1, 2, 3, 4, 5, 6, 7, 8, 9, 0]
  1. set 数组去重的方法
let arr = [12,43,23,43,68,12];
let item = [...new Set(arr)];
console.log(item);//[12, 43, 23, 68]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值