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 相关文章推荐
js的一些常用方法小结
Jun 29 Javascript
jQuery中:not选择器用法实例
Dec 30 Javascript
DOM节点深度克隆函数cloneNode()用法实例
Jan 12 Javascript
JQuery控制radio选中和不选中方法总结
Apr 15 Javascript
jQuery中dom元素上绑定的事件详解
Apr 24 Javascript
使用ionic在首页新闻中应用到的跑马灯效果的实现方法
Feb 13 Javascript
javascript 秒表计时器实现代码
Mar 09 Javascript
vue-cli脚手架-bulid下的配置文件
Mar 27 Javascript
JavaScript实现百度搜索框效果
Mar 26 Javascript
JavaScript中set与get方法用法示例
Aug 15 Javascript
vue中接口域名配置为全局变量的实现方法
Sep 20 Javascript
vue中三级导航的菜单权限控制
Mar 31 Vue.js
原生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
第四节--构造函数和析构函数
2006/11/16 PHP
从零开始学YII2框架(五)快速生成代码工具 Gii 的使用
2014/08/20 PHP
Yii2框架制作RESTful风格的API快速入门教程
2016/11/08 PHP
PHP共享内存使用与信号控制实例分析
2018/05/09 PHP
Laravel中为什么不使用blpop取队列详析
2018/08/01 PHP
PHP Beanstalkd消息队列的安装与使用方法实例详解
2020/02/21 PHP
新浪中用来显示flash的函数
2007/04/02 Javascript
使用jQuery解决IE与FireFox下createElement方法的差异
2013/11/14 Javascript
js实现鼠标经过时图片滚动停止的方法
2015/02/16 Javascript
jQuery实现非常实用漂亮的select下拉菜单选择效果
2015/11/06 Javascript
jQuery自动完成插件completer附源码下载
2016/01/04 Javascript
jQuery 常见小例汇总
2016/12/14 Javascript
JavaScript获取select中text值的方法
2017/02/13 Javascript
详解Angular4中路由Router类的跳转navigate
2017/06/09 Javascript
JS库 Highlightjs 添加代码行号的实现代码
2017/09/13 Javascript
微信小程序实现简单input正则表达式验证功能示例
2017/11/30 Javascript
使用ng-packagr打包Angular的方法示例
2018/09/21 Javascript
Nodejs实现多文件夹文件同步
2018/10/17 NodeJs
一篇文章介绍redux、react-redux、redux-saga总结
2019/05/23 Javascript
Centos7 安装Node.js10以上版本的方法步骤
2019/10/15 Javascript
python下载文件时显示下载进度的方法
2015/04/02 Python
详解Python各大聊天系统的屏蔽脏话功能原理
2016/12/01 Python
python实现Zabbix-API监控
2018/09/17 Python
Python类的继承用法示例
2019/01/31 Python
python中下标和切片的使用方法解析
2019/08/27 Python
Pytorch 多维数组运算过程的索引处理方式
2019/12/27 Python
django模型动态修改参数,增加 filter 字段的方式
2020/03/16 Python
Pandas将列表(List)转换为数据框(Dataframe)
2020/04/24 Python
Under Armour安德玛中国官网:美国高端运动科技品牌
2018/03/09 全球购物
医学生自荐信
2013/12/03 职场文书
女娲补天教学反思
2014/02/05 职场文书
社区网格化管理实施方案
2014/03/21 职场文书
七夕相亲活动策划方案
2014/08/31 职场文书
辩护意见书
2015/06/04 职场文书
运动会新闻稿
2015/07/17 职场文书
WIN10使用IIS部署ftp服务器详细教程
2022/08/05 Servers