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

 更新时间:2016年05月24日 15:08:33   投稿:jingxian   我要评论
下面小编就为大家带来一篇JS 清除字符串数组中,重复元素的实现方法。小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

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 闭包机制详解及实例代码

    JavaScript 闭包机制详解及实例代码

    这篇文章主要介绍了JavaScript 闭包机制详解及实例代码的相关资料,需要的朋友可以参考下
    2016-10-10
  • javascript AutoScroller 函数类

    javascript AutoScroller 函数类

    javascript AutoScroller 自动滚动类代码,学习类的朋友可以参考下。
    2009-05-05
  • js实现文本框选中的方法

    js实现文本框选中的方法

    这篇文章主要介绍了js实现文本框选中的方法,涉及javascript中select()方法的使用技巧,需要的朋友可以参考下
    2015-05-05
  • JavaScript字符串中每个字符出现次数完整实例

    JavaScript字符串中每个字符出现次数完整实例

    这篇文章主要介绍了JavaScript字符串中每个字符出现次数的方法,以完整实例形式分析了JavaScript针对字符串中字符的遍历操作相关技巧,需要的朋友可以参考下
    2016-01-01
  • 图片文字识别(OCR)插件Ocrad.js教程

    图片文字识别(OCR)插件Ocrad.js教程

    这篇文章主要为大家详细介绍了图片文字识别(OCR)插件Ocrad.js教程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-11-11
  • javascript中关于break,continue的特殊用法与介绍

    javascript中关于break,continue的特殊用法与介绍

    javascript大家所熟知中的for是一个循环体,循环体其中的break和continue也是大家都比较熟悉的功能,相信大家对它们的用法不会陌生,本文不是介绍其功能,本文假设你已经熟悉break和continue的语意和用法
    2012-05-05
  • Postman模拟发送带token的请求方法

    Postman模拟发送带token的请求方法

    下面小编就为大家分享一篇Postman模拟发送带token的请求方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-03-03
  • JS实现消息来时让网页标题闪动效果的方法

    JS实现消息来时让网页标题闪动效果的方法

    这篇文章主要介绍了JS实现消息来时让网页标题闪动效果的方法,实例分析了JavaScript基于时间函数动态操作页面元素的技巧,并附带了开心网的标题闪动解决方案,需要的朋友可以参考下
    2016-04-04
  • 图片延迟加载的实现代码(模仿懒惰)

    图片延迟加载的实现代码(模仿懒惰)

    在浏览网页时经常会碰到图片延迟加载的情况,它的优势在于提高加载速度,未加载前加载图片占位图,接下来为大家详细介绍下,感兴趣的朋友可以参考下哈
    2013-03-03
  • 原生js模拟淘宝购物车项目实战

    原生js模拟淘宝购物车项目实战

    这篇文章主要向大家推荐了一个原生js模拟淘宝购物车项目实战,包括商品的单选、全选、删除、修改数量、价格计算、数目计算、预览等功能的实现,感兴趣的小伙伴们可以参考一下
    2015-11-11

最新评论