编程技术文章分享与教程

网站首页 > 技术文章 正文

JavaScript中常用的去重方法;包括Set

hmc789 2024-11-24 16:51:14 技术文章 2 ℃

目录:在我们学习JavaScript的时候肯定学习怎样过去重;但是去重的方法有很多;今天我就给大家分享一下我了解的方法;相互学习一哈

第一种:先排序后去重

  1. 对数组进行双重循环;如果外循环的值大于内循环的值;就利用第三方变量对其交换值 ;这儿也可以用 sort
a.sort((a,b)=>{return a-b}); // 排序
  1. 当排序完成以后;再次循环进行比较相邻的两个值
var a =[1,2,3,4,5,2,3,5,5,5,5]
function info(a){
            var arr = []
            for(var i=0;i<a.length;i++){
                for(var j=0;j<a.length-1;j++){
                    if(a[i]>a[j]){
                        var list = a[i]
                        a[i] = a[j]
                        a[j] = list
                    }
                }
            }
            for(var e=0;e<a.length;e++){
                if(a[e] != a[e+1]){
                    arr.push(a[e])
                }
            }
            return arr
 }
        let list = info(a)
        console.log(list); // 输出结果 [1, 2, 3, 4, 5]

第二种:indexOf去重

此去重主要是利用 indexOf 去查找是否有相同的值;如果没有就返回-1

var a =[1,2,3,4,5,2,3,5,5,5,5]
function info(arr){
            let a = []
            for(var i in arr){
                if(a.indexOf(arr[i])==-1){
                    a.push(arr[i])
                }
            }
            return a
  }
        let list = info(a)
        console.log(list); // 输出结果 [1, 2, 3, 4, 5]

第三种:双重for循环去重

z这儿需要注意一点的就是内循环的时候不要 a.length-1;否则的话就会出现[1, 2, 3, 4, 5, 5]这个结果

var a =[1,2,3,4,5,2,3,5,5,5,5]
for(let i=0;i<a.length;i++){
            for(let j=i+1;j<a.length;j++){
                if(a[i]===a[j]){
                a.splice(j,1);
                    j--;
                }
            }
     }
  console.log(a); // 输出结果 [1, 2, 3, 4, 5]

第四种:Set去重

set去重应该说是简单的去重方式了

var a = [1,2,3,4,5,2,3,5,5,5,5]
let list = [...new Set(a)]
console.log(list); // 输出结果 [1, 2, 3, 4, 5]

以上的四种去重方法只是去重方法中的冰山一角;不过找到最适合自己的那个方法才是最好的;

如果有什么不对的地方;欢迎大家补充;相互学习、共勉

Tags:

标签列表
最新留言