• 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   ]
    
    
  • 相关阅读:
    监控 SQL Server 的运行状况
    软件开发报价的计算方法
    PHP 正则表达式
    ObjectiveC编程语言简介
    iframe 自适应高度,无限级父框架
    分享iphone开发的好网站,希望大家也能提供一些分享下
    实战WebService I: XMLPRC篇(基于php)
    PHPPRC
    Objective C cocos2D场景切换方式总汇
    NoSQL数据存储引擎
  • 原文地址:https://www.cnblogs.com/hycstar/p/14429043.html
Copyright © 2020-2023  润新知