zoukankan      html  css  js  c++  java
  • js数组去重的多种实现方式

    双重for循环依次比较

    将结果函数中的元素与原数组中的元素依次比较,重复的元素舍弃,不重复的元素添加仅结果函数。

    function removeRepeatArr(arr) {
        const result = [];
        for (let i = 0, len = arr.length; i < len; i++) {
            let isRepeat = false;
            for (let j = 0, _len = result.length; j < _len; j++) {
                if (result[j] === arr[i]) {
                    isRepeat = true;
                    break;
                }
            }
            if (!isRepeat) {
                result.push(arr[i]);
            }
        }
    
        return result;
    }
    
    const arr = [1, 2, 1, 2, 3, 3, 4, 5];
    
    console.log(removeRepeatArr(arr));
    // [ 1, 2, 3, 4, 5  ]
    

    使用hashtable

    使用for循环创建hash表

    function removeRepeatArr(arr) {
        const result = [];
        const hash = {};
        for (let i = 0, len = arr.length; i < len; i++) {
            if (!hash[arr[i]]) {
                hash[arr[i]] = true;
                result.push(arr[i]);
            }
        }
    
        return result;
    }
    
    const arr = [1, 2, 1, 2, 3, 3, 4, 5];
    
    console.log(removeRepeatArr(arr));
    // [ 1, 2, 3, 4, 5 ]
    

    当然也可以用forEach代替for循环

    function removeRepeatArr(arr) {
        const result = [];
        const hash = {};
        arr.forEach((item) => {
            if (!hash[item]) {
                result.push(item);
                hash[item] = true;
            }
        });
        
        return result;
    }
    
    const arr = [1, 2, 1, 2, 3, 3, 4, 5];
    
    console.log(removeRepeatArr(arr));
    // [ 1, 2, 3, 4, 5 ]
    

    使用set去重

    function removeRepeatArr(arr) {
        return Array.from(new Set(arr));
    }
    
    const arr = [1, 2, 1, 2, 3, 3, 4, 5];
    
    console.log(removeRepeatArr(arr));
    // [ 1, 2, 3, 4, 5   ]
    
    
  • 相关阅读:
    使用正则表达式做代码匹配和替换
    python 简单日志框架 自定义logger
    UVa 221 Urban Elevations 城市正视图 离散化初步 无限化有限
    UVa 10562 Undraw the Trees 看图写树
    【如何学习Python课程】
    【linux端口号与PID的互相查询】
    supervisor基础一
    【logstash】安装配置

    markdown
  • 原文地址:https://www.cnblogs.com/hycstar/p/14429043.html
Copyright © 2011-2022 走看看