前端面试常考数组去重方法

    技术2024-01-13  104

    数组的几种去重方法

    站在巨人的肩膀上,利用Set集合的属性实现去重 function unique (arr) { return Array.from(new Set(arr)) } console.log(Array.from(new Set([1,4,5,5]))); 通过定义新数组来实现数组去重,可通过数组的includes()或者indexof方法判断数值是否属于新数组 let a=[1,2,2,3,3,4]; function red(arr){ let arr1=[]; for(let i=0;i<arr.length;i++){ if(!arr1.includes(arr[i])){ arr1.push(arr[i]); } } return arr1; } console.log(red(a)); function red1(arr){ let arr1=[]; for(let i=0;i<arr.length;i++){ if(arr1.indexOf(arr[i])==-1){ arr1.push(arr[i]); } } return arr1; } console.log(red1(a)); 直接操作数组的值,重复的删除实现,去重,使用数组中splice方法,缺点:改变了原始数组 function red2(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); j++; } } } return arr; } console.log(red1(a)); 笔试中遇到的去重方法 let nums=[1,1,2] const newNums=nums.filter((n,i)=>{ return nums.indexOf(n)===i }) console.log( newNums);
    Processed: 0.015, SQL: 9