js在数组中删除重复的元素自保留一个(两种实现思路)


Posted in Javascript onAugust 22, 2014

例如:var student = [‘qiang','ming','tao','li','liang','you','qiang','tao'];

第一种思路是:遍历要删除的数组arr, 把元素分别放入另一个数组tmp中,在判断该元素在arr中不存在才允许放入tmp中

用到两个函数:for ...in 和 indexOf()

<script type="text/javascript"> 
var student = ['qiang','ming','tao','li','liang','you','qiang','tao'];
function unique(arr){
// 遍历arr,把元素分别放入tmp数组(不存在才放)
var tmp = new Array();
for(var i in arr){
//该元素在tmp内部不存在才允许追加
if(tmp.indexOf(arr[i])==-1){
tmp.push(arr[i]);
}
}
return tmp;
}

</script>

第二种思路是:把目标数组arr的元素值和键的位置调换 自动就把重复的元素给删除掉了,调换后的样子:array('qiang'=>1,'ming'=>1,'tao'=>1)

<script type="text/javascript">
var student = ['qiang','ming','tao','li','liang','you','qiang','tao'];
function unique(arr){
var tmp = new Array();

for(var m in arr){
tmp[arr[m]]=1;
}
//再把键和值的位置再次调换
var tmparr = new Array();

for(var n in tmp){
tmparr.push(n);
}
return tmparr;
}
</script>
Javascript 相关文章推荐
JavaScript中Array 对象相关的几个方法
Dec 22 Javascript
jquery加载页面的方法(页面加载完成就执行)
Jun 21 Javascript
关于jQuery参考实例2.0 用jQuery选择元素
Apr 07 Javascript
一个JavaScript递归实现反转数组字符串的实例
Oct 14 Javascript
JavaScript中实现sprintf、printf函数
Jan 27 Javascript
jQuery循环动画与获取组件尺寸的方法
Feb 02 Javascript
javascript实现table选中的行以指定颜色高亮显示的方法
May 13 Javascript
深入浅析react native es6语法
Dec 09 Javascript
request请求获取参数的实现方法(post和get两种方式)
Sep 27 Javascript
浅析JavaScript中break、continue和return的区别
Nov 30 Javascript
JS优化与惰性载入函数实例分析
Apr 06 Javascript
原生js实现拖拽功能基本思路详解
Apr 18 Javascript
js获取input长度并根据页面宽度设置其大小及居中对齐
Aug 22 #Javascript
js使用正则实现ReplaceAll全部替换的方法
Aug 22 #Javascript
IE浏览器IFrame对象内存不释放问题解决方法
Aug 22 #Javascript
js中实现多态采用和继承类似的方法
Aug 22 #Javascript
js中运算符&amp;&amp; 和 || 的使用记录
Aug 21 #Javascript
字段太多jquey快速清空表单内容方法
Aug 21 #Javascript
jQuery .tmpl() 用法示例介绍
Aug 21 #Javascript
You might like
rephactor 优秀的PHP的重构工具
2011/06/09 PHP
gearman中任务的优先级和返回状态实例分析
2020/02/27 PHP
JQUBar 基于JQUERY的柱状图插件
2010/11/23 Javascript
div当滚动到页面顶部的时候固定在顶部实例代码
2013/05/27 Javascript
简单方法判断JavaScript对象为null或者属性为空
2014/09/26 Javascript
纯JS实现旋转图片3D展示效果
2015/04/12 Javascript
javascript中offset、client、scroll的属性总结
2015/08/13 Javascript
同步异步动态引入js文件的几种方法总结
2016/09/23 Javascript
JavaScript中return用法示例
2016/11/29 Javascript
jQuery图片切换动画效果
2017/02/28 Javascript
微信小程序实现图片轮播及文件上传
2017/04/07 Javascript
JS实现的简单表单验证功能示例
2017/10/13 Javascript
JS实现的JSON数组去重算法示例
2018/04/11 Javascript
Angular实现模版驱动表单的自定义校验功能(密码确认为例)
2018/05/17 Javascript
vue中设置、获取、删除cookie的方法
2018/09/21 Javascript
Angular6新特性之Angular Material
2018/12/28 Javascript
一些可能会用到的Node.js面试题
2019/06/15 Javascript
浅析Vue 中的 render 函数
2020/02/28 Javascript
如何解决jQuery 和其他JS库的冲突
2020/06/22 jQuery
vue自定义树状结构图的实现方法
2020/10/18 Javascript
[06:24]DOTA2 2015国际邀请赛中国区预选赛第二日TOP10
2015/05/27 DOTA
Python 代码性能优化技巧分享
2012/08/07 Python
Python如何爬取qq音乐歌词到本地
2020/06/01 Python
Python实现敏感词过滤的4种方法
2020/09/12 Python
基于css3实现漂亮便签样式
2013/03/18 HTML / CSS
什么是CSS3 HSLA色彩模式?HSLA模拟渐变色条
2016/04/26 HTML / CSS
美国最大的宠物用品零售商:PetSmart
2016/11/14 全球购物
Omio西班牙:全欧洲低价大巴、火车和航班搜索和比价
2017/02/11 全球购物
印度排名第一的蛋糕、鲜花和礼品送货:Winni
2019/08/02 全球购物
德国拖鞋网站:German Slippers
2019/11/08 全球购物
新西兰最大的天然保健及护肤品网站:HealthPost(直邮中国)
2021/02/13 全球购物
params有什么用
2016/03/01 面试题
网上常见的一份Linux面试题(多项选择部分)
2014/09/09 面试题
生产部主管岗位职责
2014/01/06 职场文书
师德学习感言
2014/01/31 职场文书
springboot实现string转json json里面带数组
2022/06/16 Java/Android