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页面加载完执行事件代码
Feb 11 Javascript
Extjs的FileUploadField文件上传出现了两个上传按钮
Apr 29 Javascript
javascript实现禁止右键和F12查看源代码
Dec 26 Javascript
搞定immutable.js详细说明
May 02 Javascript
JavaScript编写检测用户所使用的浏览器的代码示例
May 05 Javascript
总结AngularJS开发者最常犯的十个错误
Aug 31 Javascript
Node.js中DNS模块学习总结
Feb 28 Javascript
javascript中UMD规范的代码推演
Aug 29 Javascript
微信小程序时间戳转日期的详解
Apr 30 Javascript
加速vue组件渲染之性能优化
Apr 09 Javascript
Vue移动端用淘宝弹性布局lib-flexible插件做适配的方法
May 26 Javascript
vue-cli脚手架的.babelrc文件用法说明
Sep 11 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
英雄试炼之肉山谷—引领RPG新潮流
2020/04/20 DOTA
数字转英文
2006/12/06 PHP
WordPres对前端页面调试时的两个PHP函数使用小技巧
2015/12/22 PHP
解决PHP程序运行时:Fatal error: Maximum execution time of 30 seconds exceeded in的错误提示
2016/11/25 PHP
laravel 实现划分admin和home 模块分组
2019/10/15 PHP
一个简单的瀑布流效果(主体形式自写)
2013/05/27 Javascript
基于JQuery实现滚动到页面底端时自动加载更多信息
2014/01/31 Javascript
jquery事件的ready()方法使用详解
2015/11/11 Javascript
javascript常见数字进制转换实例分析
2016/04/21 Javascript
JavaScript的MVVM库Vue.js入门学习笔记
2016/05/03 Javascript
AngularJS 单元测试(二)详解
2016/09/21 Javascript
深入理解js中的加载事件
2017/02/08 Javascript
jQuery实现导航回弹效果
2017/02/27 Javascript
bootstrap模态框远程示例代码分享
2017/05/22 Javascript
使用node.js实现微信小程序实时聊天功能
2018/08/13 Javascript
JavaScript中的回调函数实例讲解
2019/01/27 Javascript
JavaScript提升机制Hoisting详解
2019/10/23 Javascript
基于ant design日期控件使用_仅月份的操作
2020/10/27 Javascript
Python合并字典键值并去除重复元素的实例
2016/12/18 Python
Python 元类实例解析
2018/04/04 Python
Pycharm之快速定位到某行快捷键的方法
2019/01/20 Python
python 定时器,实现每天凌晨3点执行的方法
2019/02/20 Python
PyQt5实现简易计算器
2020/05/30 Python
美国最便宜的旅游网站:CheapTickets
2017/07/09 全球购物
英格兰足协官方商店:England Store
2019/07/12 全球购物
Servlet面试题库
2015/07/18 面试题
opencv实现图像几何变换
2021/03/24 Python
电子商务应届生求职信
2013/11/16 职场文书
工程总经理工作职责
2013/12/09 职场文书
校园活动策划书范文
2014/01/10 职场文书
医学求职自荐信
2014/06/21 职场文书
2014年英语教学工作总结
2014/12/17 职场文书
升学宴家长答谢词
2015/09/29 职场文书
2016三严三实专题教育活动心得体会
2016/01/06 职场文书
餐厅开业活动方案
2019/07/08 职场文书
Python基础详解之描述符
2021/04/28 Python