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中URL编码函数代码
Jan 11 Javascript
JS 获取滚动条高度示例代码
Oct 24 Javascript
元素未显示设置width/height时IE中使用currentStyle获取为auto
May 04 Javascript
AngularJS实现路由实例
Feb 12 Javascript
vue-router 路由基础的详解
Oct 17 Javascript
vue移动UI框架滑动加载数据的方法
Mar 12 Javascript
javascript原型链学习记录之继承实现方式分析
May 01 Javascript
vue实现点击按钮切换背景颜色的示例代码
Jun 23 Javascript
vue插件--仿微信小程序showModel实现模态提示窗功能
Aug 19 Javascript
vue实现简单数据双向绑定
Apr 28 Vue.js
vue+element ui实现锚点定位
Jun 29 Vue.js
Vue router配置与使用分析讲解
Dec 24 Vue.js
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
CI框架装载器Loader.php源码分析
2014/11/04 PHP
Yii2单元测试用法示例
2016/11/12 PHP
浅谈ThinkPHP5.0版本和ThinkPHP3.2版本的区别
2017/06/17 PHP
PHP实现的迪科斯彻(Dijkstra)最短路径算法实例
2017/09/16 PHP
laravel批量生成假数据的方法
2019/10/09 PHP
javascript 操作cookies及正确使用cookies的属性
2009/10/15 Javascript
JS Pro-深入面向对象的程序设计之继承的详解
2013/05/07 Javascript
html页面显示年月日时分秒和星期几的两种方式
2013/08/20 Javascript
不同编码的页面表单数据乱码问题解决方法
2015/02/15 Javascript
浅谈javascript函数式编程
2015/09/06 Javascript
JavaScript——DOM操作——Window.document对象详解
2016/07/14 Javascript
关于JS中二维数组的声明方法
2016/09/24 Javascript
原生JavaScript制作计算器
2016/10/16 Javascript
简单实现jQuery级联菜单
2017/01/09 Javascript
解决Vue2.0自带浏览器里无法打开的原因(兼容处理)
2017/07/28 Javascript
从零撸一个pc端vue的ui组件库( 计数器组件 )
2019/08/08 Javascript
Javascript中Math.max和Math.max.apply的区别和用法详解
2020/08/24 Javascript
[01:45]2014DOTA2 TI预选赛预选赛 战前探营!
2014/05/21 DOTA
Python中map,reduce,filter和sorted函数的使用方法
2015/08/17 Python
Python程序员面试题 你必须提前准备!(答案及解析)
2018/01/23 Python
python遍历小写英文字母的方法
2019/01/02 Python
python调用matlab的m自定义函数方法
2019/02/18 Python
使用Python实现将list中的每一项的首字母大写
2019/06/11 Python
对python中的*args与**kwgs的含义与作用详解
2019/08/28 Python
Python银行系统实战源码
2019/10/25 Python
如何解决安装python3.6.1失败
2020/07/01 Python
Python爬取网页信息的示例
2020/09/24 Python
HTML5 Canvas玩转酷炫大波浪进度图效果实例(附demo)
2016/12/14 HTML / CSS
Html5让容器充满屏幕高度或自适应剩余高度的布局实现
2020/05/14 HTML / CSS
欧姆龙医疗欧洲有限公司:Omron Healthcare Europe B.V
2020/06/13 全球购物
党支部承诺书范文
2014/03/28 职场文书
《鲁班和橹板》教学反思
2014/04/27 职场文书
项目经理任命书
2014/06/04 职场文书
2015年党支部书记工作总结
2015/05/21 职场文书
旅游安全责任协议书
2016/03/22 职场文书
Python selenium的这三种等待方式一定要会!
2021/06/10 Python