数组去重

本文介绍了使用信号量实现JavaScript数组去重的方法。通过创建一个新的数组b,遍历原数组a,利用内部循环检查每个元素是否已存在于b中。若不存在,则将其添加到b中,确保最终b数组中的元素不重复。这种方法简洁且有效地解决了数组去重问题。

数组去重

思路:
1、创建一个新的数组来不重复储存a中的元素
2、设置一个信号量,每次查找之前为0,如果找到了置为1
3、在循环结束后判断信号量,为0的话没找到,可以加入,为1的话不对b做操作
4、将信号量置为0重新开始下一轮查找
5、打印b数组

 function sort() {
            var a = [0, 4, 1, 1, 7, 7, 2];  //创建一个数组a,有1,7重复
            console.log(a);  //打印a
            var b = [];  //创建一个新的数组b
            var flag = 0;  //设置信号量
            for (let i = 0; i < a.length; i++) {
                flag = 0;  //信号量重置为0
                for (let k = 0; k < b.length; k++) {  //在数组b中查找是否有重复元素
                    if (a[i] == b[k]) {  //找到重复元素
                        flag = 1;  //设置信号量为1
                        break;  //跳出循环
                    }
                }
                if (flag == 0) {  //如果信号量没有变,仍然为0,那么证明没有找到
                    b.push(a[i]);  //将a[i]添加到b数组中
                }
            }
            console.log(b);  //打印b数组
        }
        sort();  //调用方法

运行如下:
在这里插入图片描述

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值