JS基于开关思想实现的数组去重功能【案例】


Posted in Javascript onFebruary 18, 2019

本文实例讲述了JS基于开关思想实现的数组去重功能。分享给大家供大家参考,具体如下:

场景: 比如给你一个数组var Arr = [ 25, 70, 60, 70, 65, 65, 80 ],最终要得到去重后的新数组[25,70,60,65,80].

思路:

1.先定义个空的新数组newArr;
2.遍历旧数组Arr 中所有元素;
3.定义一个isZai变量表示开关,默认为false状态;
4.遍历新数组所有元素与旧数组元素比较(Arr[ i ] == newArr[ j ]);
5.如果该元素存在于新数组中,则改变开关状态为true;
6.根据开关状态实现需求:如果开关为false状态,则将旧数组的元素添加到新数组中;
7.最后打印新数组

js代码如下

<script>
var Arr = [ 25, 70, 60, 70, 65, 65, 80 ];//最终得到[25,70,60,65,80]
//1.先定义个空的新数组newArr;
var newArr=[];
//2.遍历旧数组Arr 中所有元素;
for(var i=0;i<=Arr.length;i++){
 //3.定义一个isZai变量表示开关,默认为false状态;
 var isZai=false;
 for(var j=0;j<=newArr.length;j++){
 // 4.遍历新数组所有元素与旧数组元素比较(Arr[ i ] == newArr[ j ]);
  if(Arr[ i ] == newArr[ j ]){
  //5.如果该元素存在于新数组中,则改变开关状态为true;
  isZai=true;//假设被推翻
  break;//一旦重复后面没有比较必要
 }
 }
 // 6.根据开关状态实现需求:如果开关为false状态,则将旧数组的元素添加到新数组中;
 if(isZai==false){
  newArr[newArr.length]=Arr[i];
 }
}
 console.log ( newArr )//打印新数组[25,70,60,65,80]
</script>

使用在线HTML/CSS/JavaScript代码运行工具:http://tools.3water.com/code/HtmlJsRun测试上述代码,可得如下运行结果:

JS基于开关思想实现的数组去重功能【案例】

Javascript 相关文章推荐
浅谈JavaScript中面向对象技术的模拟
Sep 25 Javascript
Javascript 实现TreeView CheckBox全选效果
Jan 11 Javascript
jquery获取input表单值的代码
Apr 19 Javascript
根据IP的地址,区分不同的地区,查看不同的网站页面的js代码
Feb 26 Javascript
js菜单点击显示或隐藏效果的简单实例
Jan 13 Javascript
JS实现双击屏幕滚动效果代码
Oct 28 Javascript
js实现带缓动动画的导航栏效果
Jan 16 Javascript
JS中的多态实例详解
Oct 15 Javascript
vuejs中监听窗口关闭和窗口刷新事件的方法
Sep 21 Javascript
vue-week-picker实现支持按周切换的日历
Jun 26 Javascript
关于vue项目中搜索节流的实现代码
Sep 17 Javascript
js 判断当前时间是否处于某个一个时间段内
Sep 19 Javascript
JS实现点击li标签弹出对应的索引功能【案例】
Feb 18 #Javascript
Vue框架TypeScript装饰器使用指南小结
Feb 18 #Javascript
深入理解vue-class-component源码阅读
Feb 18 #Javascript
详解TypeScript+Vue 插件 vue-class-component的使用总结
Feb 18 #Javascript
jQuery实现的卷帘门滑入滑出效果【案例】
Feb 18 #jQuery
详解ES7 Decorator 入门解析
Feb 18 #Javascript
jQuery插件实现非常实用的tab栏切换功能【案例】
Feb 18 #jQuery
You might like
php实现当前页面点击下载文件的简单方法
2016/09/22 PHP
php解决安全问题的方法实例
2019/09/19 PHP
页面调用单个swf文件,嵌套出多个方法。
2011/11/21 Javascript
js函数参数设置默认值的一种变通实现方法
2014/05/26 Javascript
搭建pomelo 开发环境
2014/06/24 Javascript
jQuery的观察者模式详解
2014/12/22 Javascript
简单谈谈Javascript中类型的判断
2015/10/19 Javascript
JS 动态加载js文件和css文件 同步/异步的两种简单方式
2016/09/23 Javascript
NodeJS使用formidable实现文件上传
2016/10/27 NodeJs
jQuery实现表格与ckeckbox的全选与单选功能
2016/11/24 Javascript
jQuery实现的页面弹幕效果【测试可用】
2018/08/17 jQuery
node.js之基础加密算法模块crypto详解
2018/09/11 Javascript
vue-for循环嵌套操作示例
2019/01/28 Javascript
vue使用高德地图点击下钻上浮效果的实现思路
2019/10/12 Javascript
关于Vue中axios的封装实例详解
2019/10/20 Javascript
解决vue加scoped后就无法修改vant的UI组件的样式问题
2020/09/07 Javascript
[36:09]Secret vs VG 2019国际邀请赛淘汰赛 败者组 BO3 第一场 8.24
2019/09/10 DOTA
[01:39:04]DOTA2-DPC中国联赛 正赛 SAG vs CDEC BO3 第二场 2月1日
2021/03/11 DOTA
Python 自动补全(vim)
2014/11/30 Python
Python封装shell命令实例分析
2015/05/05 Python
Python中使用pypdf2合并、分割、加密pdf文件的代码详解
2019/05/21 Python
通过实例了解python property属性
2019/11/01 Python
python3用urllib抓取贴吧邮箱和QQ实例
2020/03/10 Python
Pycharm 解决自动格式化冲突的设置操作
2021/01/15 Python
python gui开发——制作抖音无水印视频下载工具(附源码)
2021/02/07 Python
欧洲最大的婴幼儿服装及内衣公司:Petit Bateau(小帆船)
2016/08/16 全球购物
北美主要的汽车零部件零售商:AutoShack.com
2019/02/23 全球购物
J2EE面试题大全
2016/08/06 面试题
servlet面试题
2012/08/20 面试题
大学生的应聘自我评价
2013/12/13 职场文书
会计系个人求职信范文分享
2013/12/20 职场文书
2014年三八妇女节活动方案
2014/02/28 职场文书
英语教师求职信
2014/06/16 职场文书
2015年收银工作总结范文
2015/04/01 职场文书
班委竞选稿范文
2015/11/21 职场文书
Matlab如何实现矩阵复制扩充
2021/06/02 Python