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 相关文章推荐
圣诞节Merry Christmas给博客添加浪漫的下雪效果基于jquery实现
Dec 27 Javascript
Javascript简单实现可拖动的div
Oct 22 Javascript
Bootstrap基本样式学习笔记之标签(5)
Dec 07 Javascript
详解Bootstrap各式各样的按钮(推荐)
Dec 13 Javascript
jQuery使用ajax_动力节点Java学院整理
Jul 05 jQuery
Angular4学习笔记之新建项目的方法
Jul 18 Javascript
jQuery实现用户信息表格的添加和删除功能
Sep 12 jQuery
css和js实现弹出登录居中界面完整代码
Nov 26 Javascript
微信小程序异步API为Promise简化异步编程的操作方法
Aug 14 Javascript
微信小程序自定义可滑动日历界面
Dec 28 Javascript
bootstrap table.js动态填充单元格数据的多种方法
Jul 18 Javascript
layUI实现列表查询功能
Jul 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
漂亮但不安全的CTB
2006/10/09 PHP
php使用websocket示例详解
2014/03/12 PHP
PHP遍历数组的方法汇总
2015/04/30 PHP
JQUBar 基于JQUERY的柱状图插件
2010/11/23 Javascript
使用Javascript接收get传递的值的代码
2011/11/30 Javascript
密码强度检测效果实现原理与代码
2013/01/04 Javascript
js实现select下拉框菜单
2015/12/08 Javascript
极易被忽视的javascript面试题七问七答
2016/02/15 Javascript
js学习阶段总结(必看篇)
2016/06/16 Javascript
JS及PHP代码编写八大排序算法
2016/07/12 Javascript
AngularJS表格详解及示例代码
2016/08/17 Javascript
基于Javascript实现的不重复ID的生成器
2016/12/25 Javascript
JS及JQuery对Html内容编码,Html转义
2017/02/17 Javascript
实战node静态文件服务器的示例代码
2018/03/08 Javascript
微信小程序导航栏跟随滑动效果的实现代码
2019/05/14 Javascript
Vue全局使用less样式,组件使用全局样式文件中定义的变量操作
2020/10/21 Javascript
[00:44]华丽开场!DOTA2勇士令状带来全新对阵画面
2019/05/15 DOTA
浅谈Python中数据解析
2015/05/05 Python
代码分析Python地图坐标转换
2018/02/08 Python
python使用udp实现聊天器功能
2018/12/10 Python
在Python中如何传递任意数量的实参的示例代码
2019/03/21 Python
python3+PyQt5 使用三种不同的简便项窗口部件显示数据的方法
2019/06/17 Python
OpenCV 边缘检测
2019/07/10 Python
pandas 如何分割字符的实现方法
2019/07/29 Python
tensorflow入门:TFRecordDataset变长数据的batch读取详解
2020/01/20 Python
python如何从键盘获取输入实例
2020/06/18 Python
Python分析最近大火的网剧《隐秘的角落》
2020/07/02 Python
使用python将微信image下.dat文件解密为.png的方法
2020/11/30 Python
HTML5中的Web Notification桌面右下角通知功能的实现
2018/04/19 HTML / CSS
个人求职简历中英文自我评价
2013/12/16 职场文书
幼儿园保教管理制度
2014/02/03 职场文书
数控专业大学毕业生职业规划范文
2014/02/06 职场文书
机关单位动员会主持词
2014/03/20 职场文书
一年级评语大全
2014/04/23 职场文书
管理失职检讨书
2015/05/05 职场文书
MySQL索引失效的典型案例
2021/06/05 MySQL