JavaScript - 有序去重和无序去重

 个人开发的塔罗牌占卜小程序:【问问塔罗牌】 快来瞧瞧吧!

 

有序去重 ( 采用JS对象自带的key排序 )

    function OrderlySort(_list = []) {
        const current_list = [..._list];
        let bl = !!current_list.length;
        const _obj = {};
        while (bl) {
            _obj[current_list.shift()] = true;
            bl = !!current_list.length;
        }
        return Object.keys(_obj);
    }

无序去重

 function OrderlyDefault(_list) {
        const current_list = [..._list];
        const filter_list = [];
        const _obj = {};
        let bl = !!current_list.length;
        while (bl) {
            const key = current_list.shift();
            if (!_obj[key]) {
                _obj[key] = true;
                filter_list.push(key);
            }
            bl = !!current_list.length;
        }
        return filter_list;
    }

深度-有序去重

 function OrderlySortDepp(_list = []) {
        const current_list = [..._list];
        let bl = !!current_list.length;
        const _obj = {};
        while (bl) {
            const item = current_list.shift();
            if (Array.isArray(item)) {
                current_list.push(...item);
            } else {
                _obj[item] = true;
            }
            bl = !!current_list.length;
        }
        return Object.keys(_obj);
    }

深度-无序去重

 function OrderlyDefaultDeep(_list) {
        const current_list = [..._list];
        const filter_list = [];
        const _obj = {};
        let bl = !!current_list.length;
        while (bl) {
            const item = current_list.shift();
            if (Array.isArray(item)) {
                current_list.push(...item);
            }
            else if (!_obj[item]) {
                _obj[item] = true;
                filter_list.push(item);
            }
            bl = !!current_list.length;
        }
        return filter_list;
    }

demo

 const list = [2, 3, 1, 2, 4, 6, 7, 8, 9, 1];
    const list2 = [23, 45, 56, list, 2, 4, 3, 1, 11];
    function logJSON(){
        console.log(JSON.stringify(arguments))
    }
    logJSON(OrderlySort(list));
    logJSON(OrderlyDefault(list));
    logJSON(OrderlySortDepp(list2));
    logJSON(OrderlyDefaultDeep(list2));
    
    // 输出:
    {"0":["1","2","3","4","6","7","8","9"]}
    {"0":[2,3,1,4,6,7,8,9]}
    {"0":["1","2","3","4","6","7","8","9","11","23","45","56"]}
    {"0":[23,45,56,2,4,3,1,11,6,7,8,9]}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值