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 相关文章推荐
jQuery 动画基础教程
Dec 25 Javascript
JavaScript Object的extend是一个常用的功能
Dec 02 Javascript
javascript 快速排序函数代码
May 30 Javascript
jquery实现简单的拖拽效果实例兼容所有主流浏览器
Jun 21 Javascript
javascript break指定标签打破多层循环示例
Jan 20 Javascript
jQuery DOM操作实例
Mar 05 Javascript
jQuery中live()方法用法实例
Jan 19 Javascript
jQuery左侧大图右侧小图焦点图幻灯切换代码分享
Aug 19 Javascript
分享12个实用的jQuery代码片段
Mar 09 Javascript
vue 点击按钮实现动态挂载子组件的方法
Sep 07 Javascript
vue Tab切换以及缓存页面处理的几种方式
Nov 05 Javascript
Vue中axios拦截器如何单独配置token
Dec 27 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
一条久听不愿放下的DIY森海MX500,三言两语话神奇
2021/03/02 无线电
使用ob系列函数实现PHP网站页面静态化
2014/08/13 PHP
PHP中curl_setopt函数用法实例分析
2015/04/16 PHP
PHP中使用curl入门教程
2015/07/02 PHP
php轻量级的性能分析工具xhprof的安装使用
2015/08/12 PHP
php版微信小店API二次开发及使用示例
2016/11/12 PHP
详解PHP使用日期时间处理器Carbon人性化显示时间
2017/08/10 PHP
在PHP中输出JS语句以及乱码问题的解决方案
2019/02/13 PHP
PHP使用PDO创建MySQL数据库、表及插入多条数据操作示例
2019/05/30 PHP
jQuery之折叠面板的深入解析
2013/06/19 Javascript
javascript 通用loading动画效果实例代码
2014/01/14 Javascript
基于iframe实现类似于ajax的页面无刷新
2014/05/31 Javascript
下拉框select的绑定示例
2014/09/04 Javascript
javascript模拟map输出与去除重复项的方法
2015/02/09 Javascript
Bootstrap中datetimepicker使用小结
2016/12/28 Javascript
BootStrapValidator初使用教程详解
2017/02/10 Javascript
js实现PC端和移动端刮卡效果
2020/03/27 Javascript
JavaScript中数组Array.sort()排序方法详解
2017/03/01 Javascript
js实现音乐播放控制条
2017/09/09 Javascript
Vue的土著指令和自定义指令实例详解
2018/02/04 Javascript
JS中min函数实例讲解
2019/02/18 Javascript
用js编写留言板
2020/03/17 Javascript
python 实现一次性在文件中写入多行的方法
2019/01/28 Python
python实现五子棋人机对战游戏
2020/03/25 Python
Python利用WMI实现ping命令的例子
2019/08/14 Python
python实现的发邮件功能示例
2019/09/11 Python
5分钟实现Canvas鼠标跟随动画背景
2019/11/18 HTML / CSS
美国领先的宠物用品和宠物食品零售商:Petco
2020/10/28 全球购物
师范大学毕业自我鉴定
2013/11/21 职场文书
一个大学生十年的职业规划
2014/01/17 职场文书
交通事故私了协议书
2014/04/16 职场文书
艾滋病宣传活动总结
2014/05/08 职场文书
纪念九一八爱国演讲稿600字
2014/09/14 职场文书
医院2014国庆节活动策划方案
2014/09/21 职场文书
创业分两种人:那么哪些适合创业?,哪些适合不适合创业呢?
2019/08/23 职场文书
在CSS中使用when/else的方法
2022/01/18 HTML / CSS