flash vue添加class 后台系统模板 erp系统源码 两个正态分布相乘 short几个字节 grep不是内部命令 cpm计算 ps字体旋转角度 pcie转sata linux获取当前时间 lora开发 java使用redis jquery获取兄弟节点 linux启动数据库 docker启动命令 mysqlinsert python运算符优先级 python平台 javaobject java开发教程 java课程学习 java实现队列 javaabstract java中random 变量的类型 java获取url参数 小程序源码下载 微信客户管理系统 flash基础 文字转语音软件免费版 华为手机刷公交卡 网络驱动 粉碎文件工具 红米3和红米3s的区别 饥荒黄油 音乐迷 怎么用打印机扫描文件 scatter函数 ppt分节
当前位置: 首页 > 学习教程  > 编程语言

js中数组去重的办法

2020/10/8 20:17:04 文章标签:

Methods 1: 思路&#xff1a;定义一个新数组&#xff0c;并存放原数组的第一个元素&#xff0c;然后将元素组一一和新数组的元素对比&#xff0c;若不同则存放在新数组中。 function unique(arr) {let newArr [arr[0]];for (let i 1; i < arr.length; i) {let repeat fal…

Methods 1: 思路:定义一个新数组,并存放原数组的第一个元素,然后将元素组一一和新数组的元素对比,若不同则存放在新数组中。

    function unique(arr) {
        let newArr = [arr[0]];
        for (let i = 1; i < arr.length; i++) {
            let repeat = false;
            for (let j = 0; j < newArr.length; j++) {
                if (arr[i] === newArr[j]) {
                    repeat = true;
                    break;
                }else{
                    
                }
            }
            if (!repeat) {
                newArr.push(arr[i]);
            }
        }
        return newArr;
    }

    console.log(unique([1, 1, 2, 3, 5, 3, 1, 5, 6, 7, 4]));
    // 结果是[1, 2, 3, 5, 6, 7, 4]

Methods 2: 思路:先将原数组排序,在与相邻的进行比较,如果不同则存入新数组。

    function unique2(arr) {
        var formArr = arr.sort()
        var newArr=[formArr[0]]
        for (let i = 1; i < formArr.length; i++) {
            if (formArr[i]!==formArr[i-1]) {
                newArr.push(formArr[i])
            }
        }
        return newArr
    }
    console.log(unique2([1, 1, 2, 3, 5, 3, 1, 5, 6, 7, 4]));
    // 结果是[1, 2, 3,  4,5, 6, 7]

Methods 3: 利用对象属性存在的特性,如果没有该属性则存入新数组。

    function unique3(arr) {
        var obj={}
        var newArr=[]
        for (let i = 0; i < arr.length; i++) {
            if (!obj[arr[i]]) {
                obj[arr[i]] = 1
                newArr.push(arr[i])
            }   
        }
        return newArr
    }
    console.log(unique2([1, 1, 2, 3, 5, 3, 1, 5, 6, 7, 4]));
    // 结果是[1, 2, 3, 5, 6, 7, 4]

Methods 4: 利用数组的indexOf下标属性来查询。

    function unique4(arr) {
        var newArr = []
        for (var i = 0; i < arr.length; i++) {
            if (newArr.indexOf(arr[i])===-1) {
                newArr.push(arr[i])
            }
        }
        return newArr
    }
    console.log(unique4([1, 1, 2, 3, 5, 3, 1, 5, 6, 7, 4]));
    // 结果是[1, 2, 3, 5, 6, 7, 4]

Methods 5: 利用数组原型对象上的includes方法。

    function unique5(arr) {
        var newArr = []
        for (var i = 0; i < arr.length; i++) {
            if (!newArr.includes(arr[i])) {
                newArr.push(arr[i])
            }
        }
        return newArr
    }
    console.log(unique5([1, 1, 2, 3, 5, 3, 1, 5, 6, 7, 4]));
    // 结果是[1, 2, 3, 5, 6, 7, 4]

Methods 6: 利用数组原型对象上的 filter 和 includes方法。

    function unique6(arr) {
        var newArr = []
        newArr = arr.filter(function (item) {
            return newArr.includes(item) ? '' : newArr.push(item)
        })
        return newArr
    }
    console.log(unique6([1, 1, 2, 3, 5, 3, 1, 5, 6, 7, 4]));
    // 结果是[1, 2, 3, 5, 6, 7, 4]

Methods 7: 利用数组原型对象上的 forEach 和 includes方法。

      function unique7(arr) {
        let newArr = [];
        arr.forEach(item => {
            return newArr.includes(item) ? '' : newArr.push(item);
        });
        return newArr;
    }
    console.log(unique7([1, 1, 2, 3, 5, 3, 1, 5, 6, 7, 4]));
    // 结果是[1, 2, 3, 4, 5, 6, 7]

Methods 8: 利用数组原型对象上的 splice 方法。

    function unique8(arr) {
        var i,j,len = arr.length;
        for (i = 0; i < len; i++) {
            for (j = i + 1; j < len; j++) {
                if (arr[i] == arr[j]) {
                    arr.splice(j, 1);
                    len--;
                    j--;
                }
            }
        }
        return arr;
    }
    console.log(unique8([1, 1, 2, 3, 5, 3, 1, 5, 6, 7, 4]));

Methods 9: 利用数组原型对象上的 lastIndexOf 方法。

    function unique9(arr) {
        var res = [];
        for (var i = 0; i < arr.length; i++) {
            res.lastIndexOf(arr[i]) !== -1 ? '' : res.push(arr[i]);
        }
        return res;
    }
    console.log(unique9([1, 1, 2, 3, 5, 3, 1, 5, 6, 7, 4]));
    // 结果是[1, 2, 3, 5, 6, 7, 4]

Methods 10: 利用 ES6的set 方法。

    function unique10(arr) {
        //Set数据结构,它类似于数组,其成员的值都是唯一的
        return Array.from(new Set(arr)); // 利用Array.from将Set结构转换成数组
    }
    console.log(unique10([1, 1, 2, 3, 5, 3, 1, 5, 6, 7, 4]));
    // 结果是[1, 2, 3, 5, 6, 7, 4]

本文链接: http://www.dtmao.cc/news_show_250244.shtml

附件下载

相关教程

    暂无相关的数据...

共有条评论 网友评论

验证码: 看不清楚?