JS 清除字符串数组中,重复元素的实现方法


Posted in Javascript onMay 24, 2016

JS 清除字符串数组中,重复元素的实现方法

<script language="JavaScript">
<!--
var arrData=new Array();
for(var i=0; i<1000; i++)
{
arrData[arrData.length] = String.fromCharCode(Math.floor(Math.random()*26)+97);
}
//document.write(arrData+"<br/>"); 

//方法一,普通遍历
function myArray_Unique(myArray)
{
//var myArray=new Array("a","a","c","a","c","d","e","f","f","g","h","g","h","k");
var haha=myArray;
for(var i=0;i<myArray.length;i++)
{
for(var j=0;j<myArray.length;j++)
{
temp=myArray[i];
if((i+j+1)<myArray.length&&temp==myArray[i+j+1]) //如果当前元素与后一个元素相等
haha.splice(i+j+1,1); //然后就移除下一个元素 
}
}
return haha;
} 

//方法二
function getUnique(someArray)
{
tempArray=someArray.slice(0);//复制数组到临时数组
for(var i=0;i<tempArray.length;i++)
{
for(var j=i+1;j<tempArray.length;)
{
if(tempArray[j]==tempArray[i])
//后面的元素若和待比较的相同,则删除并计数;
//删除后,后面的元素会自动提前,所以指针j不移动
{
tempArray.splice(j,1);
}
else
{
j++;
}
//不同,则指针移动
}
}
return tempArray;
} 

//方法三 正则表达式 -- 适用于字符型数组
function getUnique2(A)
{
var str = "\x0f"+ A.join("\x0f");
while(/(\w+)[^\1]*\1/.test(str))
str = str.replace("\x0f"+ RegExp.$1, "");
return str.substr(1).split("\x0f");
} 

//方法四 关联结构
Array.prototype.unique = array_unique;
function array_unique()
{
var o = new Object();
for (var i=0,j=0; i<this.length; i++)
{
if (typeof o[this[i]] == 'undefined')
{
o[this[i]] = j++;
}
}
this.length = 0;
for (var key in o)
{
this[o[key]] = key;
}
return this;
} 

var d = new Date().getTime();
document.write(myArray_Unique(arrData));
d = new Date().getTime()-d;
document.write("<br/>2000元素 方法一算法计耗时 "+ d +" 毫秒!<br/><br/>"); //大约370ms~390ms左右 

var d = new Date().getTime();
document.write(getUnique(arrData));
d = new Date().getTime()-d;
document.write("<br/>2000元素 方法二算法计耗时 "+ d +" 毫秒!<br/><br/>"); //大约360ms~380ms左右 

var d = new Date().getTime();
document.write(getUnique2(arrData));
d = new Date().getTime()-d;
document.write("<br/>2000元素 正则表达式 方法三算法计耗时 "+ d +" 毫秒!<br/><br/>");//大约80ms左右 

var d = new Date().getTime();
document.write(arrData.unique());
d = new Date().getTime()-d;
document.write("<br/>2000元素 关联结构 方法四算法计耗时 "+ d +" 毫秒!<br /><br />");//大约0ms~10ms左右 

//-->
</script>

以上这篇JS 清除字符串数组中,重复元素的实现方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
在每个匹配元素的外部插入新元素的方法
Dec 20 Javascript
setTimeout()与setInterval()方法区别介绍
Dec 24 Javascript
使用 JavaScript 进行函数式编程 (一) 翻译
Oct 02 Javascript
js原生跨域_用script标签的简单实现
Sep 24 Javascript
jQuery实现文章图片弹出放大效果
Apr 06 jQuery
jQuery使用JSONP实现跨域获取数据的三种方法详解
May 04 jQuery
详解swipe使用及竖屏页面滚动方法
Jun 28 Javascript
JavaScript实现多态和继承的封装操作示例
Aug 20 Javascript
监听angularJs列表数据是否渲染完毕的方法示例
Nov 07 Javascript
在vue项目中引入vue-beauty操作方法
Feb 11 Javascript
vue实现滑动超出指定距离回顶部功能
Jul 31 Javascript
JavaScript实现拖拽效果
Mar 16 Javascript
原生js的数组除重复简单实例
May 24 #Javascript
实例讲解jQuery中对事件的命名空间的运用
May 24 #Javascript
json传值以及ajax接收详解
May 24 #Javascript
JS获取屏幕高度的简单实现代码
May 24 #Javascript
基于JavaScript实现回到页面顶部动画代码
May 24 #Javascript
jquery简单插件制作(fn.extend)完整实例
May 24 #Javascript
jQuery获取及设置表单input各种类型值的方法小结
May 24 #Javascript
You might like
微信access_token的获取开发示例
2015/04/16 PHP
带你了解PHP7 性能翻倍的关键
2015/11/19 PHP
PHP框架自动加载类文件原理详解
2017/06/06 PHP
ASP.NET jQuery 实例18 通过使用jQuery validation插件校验DropDownList
2012/02/03 Javascript
通过js为元素添加多项样式,浏览器全兼容写法
2014/08/30 Javascript
jQuery toggle 代替方法
2016/03/22 Javascript
Vue.js移动端左滑删除组件的实现代码
2017/09/08 Javascript
Vuejs 单文件组件实例详解
2018/02/09 Javascript
Angular HMR(热模块替换)功能实现方法
2018/04/04 Javascript
Layui数据表格之获取表格中所有的数据方法
2018/08/20 Javascript
Electron-vue开发的客户端支付收款工具的实现
2019/05/24 Javascript
layui table 表格模板按钮的实例代码
2019/09/21 Javascript
webpack 最佳配置指北(推荐)
2020/01/07 Javascript
Python处理RSS、ATOM模块FEEDPARSER介绍
2015/02/18 Python
使用Python的Twisted框架实现一个简单的服务器
2015/04/16 Python
python类和函数中使用静态变量的方法
2015/05/09 Python
python编程开发之类型转换convert实例分析
2015/11/13 Python
python 计算文件的md5值实例
2017/01/13 Python
python开头的coding设置方法
2019/08/08 Python
在Django下创建项目以及设置settings.py教程
2019/12/03 Python
关于numpy.where()函数 返回值的解释
2019/12/06 Python
解决Ubuntu18中的pycharm不能调用tensorflow-gpu的问题
2020/09/17 Python
python实现自动打卡的示例代码
2020/10/10 Python
有影响力的人、名人和艺术家的官方商品:Represent
2019/11/26 全球购物
Linux如何命名文件--使用文件名时应注意
2012/01/22 面试题
深圳茁壮笔试题
2015/05/28 面试题
美工的岗位职责
2013/11/14 职场文书
工作表扬信的范文
2014/01/10 职场文书
计算机专业自荐信
2014/05/24 职场文书
公司试用期员工自我评价
2014/09/17 职场文书
期中考试复习计划
2015/01/19 职场文书
邀请函模板
2015/02/02 职场文书
财务会计岗位职责
2015/02/03 职场文书
门面租赁合同范文
2019/08/06 职场文书
对象析构函数__del__在Python中何时使用
2022/03/22 Python
python中的getter与setter你了解吗
2022/03/24 Python