高效率去掉js数组中重复项
第一种:也是最笨的吧。
Array.prototype.unique1 =
function
() {
var
r =
new
Array();
label:
for
(
var
i = 0, n =
this
.length; i < n; i++) {
for
(
var
x = 0, y = r.length; x < y; x++) {
if
(r[x] ==
this
[i]) {
continue
label;
}
}
r[r.length] =
this
[i];
}
return
r;
}
第二种:这个正则天书一样。
Array.prototype.unique2 =
function
() {
return
this
.sort().join(
",,"
).replace(/(,|^)([^,]+)(,,\2)+(,|$)/g,
"$1$2$4"
).replace(/,,+/g,
","
).replace(/,$/,
""
).split(
","
);
}
第三种:使用对象的【hasOwnProperty】方法
Array.prototype.unique3 =
function
() {
var
temp = {}, len =
this
.length;
for
(
var
i=0; i < len; i++) {
var
tmp =
this
[i];
if
(!temp.hasOwnProperty(tmp)) {
temp[
this
[i]] =
"my god"
;
}
}
len = 0;
var
tempArr=[];
for
(
var
i
in
temp) {
tempArr[len++] = i;
}
return
tempArr;
}
第四种:先排序,前项比后项。这个方法挺简单的,但也实用。
Array.prototype.unique4 =
function
() {
var
temp =
new
Array();
this
.sort();
for
(i = 0; i <
this
.length; i++) {
if
(
this
[i] ==
this
[i+1]) {
continue
;
}
temp[temp.length]=
this
[i];
}
return
temp;
}
下面是以前经常用的,效率也很好。有点想hash表的感觉。
Array.prototype.unique5 =
function
() {
var
res = [], hash = {};
for
(
var
i=0, elem; (elem =
this
[i]) !=
null
; i++) {
if
(!hash[elem])
{
res.push(elem);
hash[elem] =
true
;
}
}
return
res;
}
使用方法:yourarray=yourarray.unique4();//你的数组名、unique1 2 3 4 5、、
高效率去掉js数组中重复项相关推荐
- python去重复排序_Python实现删除排序数组中重复项的两种方法示例
本文实例讲述了Python实现删除排序数组中重复项的两种方法.分享给大家供大家参考,具体如下: 对于给定的有序数组nums,移除数组中存在的重复数字,确保每个数字只出现一次并返回新数组的长度 注意:不 ...
- 快速查找数组中重复项下标
快速查找数组中重复项下标 var ARR = [1,2,3,4,5,1,2];var rep = [];ARR.forEach((item,index)=>{if(ARR.indexOf(ite ...
- C# 移除数组中重复项
方法一: static void Main(string[] args){//看到数组的第一反应应该是排序int[] array = { 2,4,6,2,8,5,8,10};//去掉数组中重复的项// ...
- JS快速查找数组中重复项以及下标
let arr= [1,2,3,4,5,1,2]; let rep = []; arr.forEach((item,index)=>{if(arr.indexOf(item)!=index){ ...
- Js数组中重复元素的去除办法
一.利用数组内置对象indexOf方法进行去除 1.首先要先通过for循环遍历出旧数组,通过indexOf方法来判断新数组中是否有该元素 2.indexOf方法会对元素在数组中的进行查询,如果元素中有 ...
- 算法 --- 删除数组中重复项
解题思路: 如果输入的数组长度为1,则返回该数组 否则(len>2),使用i记录当前待插入的位置,j记录下一个与nums[i]不相等的位置,leng为待返回数组的长度 当nums[i] !== ...
- 从JS数组中删除重复的值[duplicate]
本文翻译自:Remove duplicate values from JS array [duplicate] This question already has answers here : 这个问 ...
- HTML怎么去除数组的重复元素,js去除数组中重复元素并排序
/p> "http://www.w3.org/TR/html4/strict.dtd"> 003_obj //去掉数组中重复的元素 var arr=[1,2,2,3,3 ...
- php 去掉数组相同元素,php怎么去掉数组中重复的元素
php去掉数组中重复的元素的方法:可以通过内置函数array_unique()来实现.array_unique()函数可以移除数组中重复的值并返回过滤后的数组.如果数组中存在多个相同元素,则只保留第一 ...
最新文章
- opencv图像旋转
- 深度无盘 连接服务器失败,深度无盘服务器配置
- 解析xml数据存入bean映射到数据库的 需求解决过程
- 服务器里怎么维修装备,教你在服务器加自己的装备
- android apk自动安装包下载,Android实现应用下载并自动安装apk包
- 如何与深度学习服务器优雅的交互?(长期更新)
- python的应用领域和常用函数模块有哪些_Python模块导入区别与常用函数案例
- [翻译]在jQuery 1.5中使用deferred对象
- PayPal旗下Venmo:允许信用卡用户将现金返还转换为加密币
- Crystal Report動態顯示圖片
- [物理学与PDEs]第2章第4节 激波 4.2 熵条件
- log4cplus c++开源日志系统
- 【ArcGIS|空间分析】地形特征相关计算
- java emoji表情 乱码_java 微信昵称带有emoji 表情乱码
- 分类计数原理与分步计数原理_分类or分步?计数原理别再傻傻分不清~
- App原型图设计工具使用对比
- 利用Python you-get 下载网页视频
- python抓取图片数字_python 实现识别图片上的数字
- 电脑桌面云便签怎么通过便签快捷键设置窗口置顶或置底?
- 输油管道问题-分治法求解
热门文章
- 英语版计算机教室规章制度,计算机教室规章制度
- 华为p20云收藏怎么删除_华为平板怎么记笔记?这款云笔记软件帮你
- 线性求逆元模板_算法学习笔记(9):逆元
- lsof deleted java,lsof__强大的系统监控、诊断命令
- Spring学习之旅(四):面向切面编程(AOP)
- Python中缀表达式转后缀表达式并计算
- java netty socket_Netty对socket的抽象
- 为什么要使用服务器信号切换器,为何要使用KVM切换器,其好处有哪些
- php 2010excel,PHPExcel在php5.2.10上的bug
- C++ string类的说明