JS去重算法
2024-09-04 03:08:37
1.遍历数组法
它是最简单的数组去重方法(indexOf方法)
实现思路:新建一个数组,遍历去要重的数组,当值不在新数组的时候(indexOf为-1)就加入该新数组中;
var arr=[2,8,5,0,5,2,6,7,2];
function unique1(arr){
var hash=[];
for (var i = 0; i < arr.length; i++) {
if(hash.indexOf(arr[i])==-1){
hash.push(arr[i]);
}
}
return hash;
}
2.数组下标判断法
调用indexOf方法,性能和方法1差不多
实现思路:如果当前数组的第 i 项在当前数组中第一次出现的位置不是 i,那么表示第 i 项是重复的,忽略掉。否则存入结果数组。
function unique2(arr){
var hash=[];
for (var i = 0; i < arr.length; i++) {
if(arr.indexOf(arr[i])==i){
hash.push(arr[i]);
}
}
return hash;
}
3.ES6实现
基本思路:ES6提供了新的数据结构Set。它类似于数组,但是成员的值都是唯一的,没有重复的值。
Set函数可以接受一个数组(或类似数组的对象)作为参数,用来初始化。
function unique5(arr){
var x = new Set(arr);
return [...x];
}
扩展:如果重复,则去掉该元素
function unique22(arr){
var hash=[];
for (var i = 0; i < arr.length; i++) {
if(arr.indexOf(arr[i])==arr.lastIndexOf(arr[i])){
hash.push(arr[i]);
}
}
return hash;
}
最新文章
- debain 8安装为知笔记(how to install wiznote in debain 8)
- Hibernate,一对一外键单向 记录。Timestamp 的一个坑。
- NodeJS文件读取:感恩常在--抓把糖果,愉悦客人
- po 时不生效时, 不要用点方法
- 51单片机连接24C02-C语言测试代码
- CSS3的appearance属性--改变元素的外观
- 数据结构——N皇后放置方法种数
- python运维开发之第四天
- asp.net MVC2.0学习笔记
- 201521123109《java程序设计》第八周学习总结
- Flex布局语法
- 使用mysqlbinlog对主库binlog进行同步
- bootstrap_开始
- log日志文件
- JavaScript的 sourcemap 的理解
- 2017中国无人机公开赛 总决赛 CDR Final 竞赛规则
- SVM视频跟踪
- 血的教训:Protocol http not supported or disabled in libcurl
- debian的pdf阅读器
- 关于 android 返回键 代码实现