数组去重
来源:互联网 发布:pp助手正版mac 编辑:程序博客网 时间:2024/04/27 20:00
JavaScript 数组去重
1. 第一种和第二种方法都是利用了ES5中indexOf方法来去重数组
function unique(arr) { var n = []; for(var i = 0, len = arr.length; i < len; i++) { if(arr.indexOf(arr[i]) === i) { n.push(arr[i]); } } return n;}
2.
function unique(arr) { var n = []; for(var i = 0, len = arr.length; i < len; i++) { if(n.indexOf(arr[i]) === -1) { n.push(arr[i]); } } return n;}
3. 这个算法需要使用Array.prototype.sort() 方法来排序 但是sort()是利用字典码来排序的 也就是说 [1, 111, 2, 3]在sort()中是成立的。 使用需要在sort传入一个比较函数
function unique(arr) { arr.sort(function(a, b) { return a - b); var n = [arr[0]]; for(var i = 0, len = arr.length; i < len; i++) { if(arr[i] !== n[n.length-1]) n.push(arr[i]) } return n;}
4. hash + es5 来实现 速度最快
返回的对象 里面的数是字符串 不是数字
function unique(arr) { var obj = {}; for(var i = 0, len = arr.length; i < len; i++) { obj[arr[i]] = true; } return Object.keys(obj);}
5. 方法5与方法4的不同 只是多添加了一个obj对象 来储存数组的boolean属性
function unique(arr) { var obj = {}, result = []; for(var i = 0, len = arr.length; i < len; i++) { var key = arr[i]; if(!obj[key]) { result.push(key); obj[key] = true; } } return result;}
6. 该算法实现比较乱 不利于了解
function unique(arr) { var n = []; for(var i = 0, len = arr.length; i < len; i++) { for(var j = i + 1; j < len; j++) { if(arr[i] === arr[j]) j = ++i; } n.push(arr[i]); } return n;}
0 0
- 数组去数组重
- 数组去重,json数组去重
- 数组去重
- 数组去重
- JS 数组去重
- 数组去重算法
- 数组去重
- js数组去重
- php 数组去重
- 数组去重
- 数组排序去重
- javascript数组去重
- json数组去重
- 数组去重
- php数组去重
- 数组如何去重
- iOS 数组去重
- 动态数组去重
- JAVA 上机作业8.1
- 运行循环RunLoop原理剖析
- ELKStack读取文件
- 68Text Justification
- hdoj 1229 还是a+b
- 数组去重
- Qt for iOS:设置状态栏颜色(Quick)
- string::npos
- sicily 1093. Air Express
- zoj3735Josephina and RPG
- Android EditText添加图片
- UI - UICollectionView
- 软考——加密与认证技术
- hdu2188 悼念512汶川大地震遇难同胞——选拔志愿者