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 相关文章推荐
javascript的函数
Jan 31 Javascript
jQuery一步一步实现跨浏览器的可编辑表格,支持IE、Firefox、Safari、Chrome、Opera
Aug 28 Javascript
半角全角相互转换的js函数
Oct 16 Javascript
JavaScript的React Web库的理念剖析及基础上手指南
May 10 Javascript
JS获取屏幕高度的简单实现代码
May 24 Javascript
JQuery对ASP.NET MVC数据进行更新删除
Jul 13 Javascript
利用Angular.js限制textarea输入的字数
Oct 20 Javascript
JavaScript中访问id对象 属性的方式访问属性(实例代码)
Oct 28 Javascript
详解Vue中状态管理Vuex
May 11 Javascript
详解微信小程序的不同函数调用的几种方法
May 08 Javascript
Mpvue中使用Vant Weapp组件库的方法步骤
May 16 Javascript
JavaScript/TypeScript 实现并发请求控制的示例代码
Jan 18 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
咖啡知识大全
2021/03/03 新手入门
php 需要掌握的东西 不做浮躁的人
2009/12/28 PHP
PHP精确计算功能示例
2016/11/29 PHP
php数据库的增删改查 php与javascript之间的交互
2017/08/31 PHP
繁简字转换功能
2006/07/19 Javascript
Jquery 基础学习笔记
2009/05/29 Javascript
JavaScript中Object和Function的关系小结
2009/09/26 Javascript
JQuery入门—JQuery程序的代码风格详细介绍
2013/01/03 Javascript
.net,js捕捉文本框回车键事件的小例子(兼容多浏览器)
2013/03/11 Javascript
Bootstrap选项卡与Masonry插件的完美结合
2016/07/06 Javascript
Vue.js双向绑定操作技巧(初级入门)
2016/12/27 Javascript
从零学习node.js之简易的网络爬虫(四)
2017/02/22 Javascript
Vuex 进阶之模块化组织详解
2018/01/12 Javascript
ES6小技巧之代替lodash
2019/06/07 Javascript
解决在Vue中使用axios用form表单出现的问题
2019/10/30 Javascript
antd Form组件方法getFieldsValue获取自定义组件的值操作
2020/10/29 Javascript
[16:56]教你分分钟做大人:司夜刺客
2014/10/30 DOTA
[01:42]辉夜杯战队访谈宣传片—FANTUAN
2015/12/25 DOTA
在Python的循环体中使用else语句的方法
2015/03/30 Python
python任务调度实例分析
2015/05/19 Python
Python用zip函数同时遍历多个迭代器示例详解
2016/11/14 Python
python获取当前运行函数名称的方法实例代码
2017/04/06 Python
Python实现PS滤镜中马赛克效果示例
2018/01/20 Python
使用python脚本实现查询火车票工具
2018/07/19 Python
Python下应用opencv 实现人脸检测功能
2019/10/24 Python
Django密码存储策略分析
2020/01/09 Python
Europcar英国:英国汽车和货车租赁
2017/01/21 全球购物
Luxplus瑞典:香水和美容护理折扣
2018/01/28 全球购物
ZWILLING双立人英国网上商店:德国刀具锅具厨具品牌
2018/05/15 全球购物
教师竞聘上岗演讲稿
2014/09/03 职场文书
贫困证明书格式及范文
2014/10/15 职场文书
2015年世界粮食日演讲稿
2015/03/20 职场文书
就业指导讲座心得体会
2016/01/15 职场文书
2019广播稿怎么写
2019/04/17 职场文书
85句关于理想的名言警句大全
2019/08/22 职场文书
面试必问:圣杯布局和双飞翼布局的区别
2021/05/13 HTML / CSS