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;
}

最新文章

  1. debain 8安装为知笔记(how to install wiznote in debain 8)
  2. Hibernate,一对一外键单向 记录。Timestamp 的一个坑。
  3. NodeJS文件读取:感恩常在--抓把糖果,愉悦客人
  4. po 时不生效时, 不要用点方法
  5. 51单片机连接24C02-C语言测试代码
  6. CSS3的appearance属性--改变元素的外观
  7. 数据结构——N皇后放置方法种数
  8. python运维开发之第四天
  9. asp.net MVC2.0学习笔记
  10. 201521123109《java程序设计》第八周学习总结
  11. Flex布局语法
  12. 使用mysqlbinlog对主库binlog进行同步
  13. bootstrap_开始
  14. log日志文件
  15. JavaScript的 sourcemap 的理解
  16. 2017中国无人机公开赛 总决赛 CDR Final 竞赛规则
  17. SVM视频跟踪
  18. 血的教训:Protocol http not supported or disabled in libcurl
  19. debian的pdf阅读器
  20. 关于 android 返回键 代码实现

热门文章

  1. 0620 ALT选择竖排 虚函数的优缺点 浅拷贝深拷贝 操作系统
  2. java8如何对List&lt;Bean&gt;进行去重和覆盖
  3. jquery插件小集合
  4. 34-Ubuntu-用户权限-05-超级用户
  5. 如果手工启动chromedriver
  6. Async await 异步编程说明
  7. 从零开始搭搭建系统3.1——顶级pom制定
  8. 从零开始搭建系统1.7——FTP安装及配置
  9. Java处理图片工具类
  10. js中变量对象和活动对象的区别 闭包时的区别