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   ]
    
    
  • 相关阅读:
    l2tp ubuntu
    my emacs fav config
    2048小游戏源码(vue自定义指令使用)
    Vue 脚手架新建项目
    vue中修改router定义的name值
    只能输入金额格式的input
    前端开发中UI问题处理
    form表单提交Ajax请求后不跳转
    小程序中代替v-html用法
    小程序中分页加载问题
  • 原文地址:https://www.cnblogs.com/hycstar/p/14429043.html
Copyright © 2011-2022 走看看