数组去重
来源:互联网 发布:radiohead知乎 编辑:程序博客网 时间:2024/06/05 00:52
第一种:时间复杂度为O(n^2)
function uniq(arr){ var result = []; var flag = true; for(var i=0;i<arr.length;i++){ for(var j=0;j<result.length;j++){ if(arr[i]===result[j]){ flag = false; } } if(flag){ result.push(arr[i]); } } return result;}
第二种:indexOf()与filter结合使用,环境支持es5,时间复杂度为O(n)
function uniq(arr){ return arr.filter(function(item,index,array){ return array.indexOf(item) === index; });}uniq([1,2,1,1,4])输出: [1, 2, 4]
第三种:先排序sort(),再filter,时间复杂度为O(n)
function sortAndUniq(arr){ return arr.sort().filter(function(item,index,array){ return item !== array[index+1]; });}sortAndUniq([1,2,1,1,4])输出: [1, 2, 4]
第四种: 借助对象,时间复杂度为O(n),但是没有区分类型,比如2和”2”
function uniq(arr){ var result = []; var obj = {}; for(var i=0;i<arr.length;i++){ if(!obj[arr[i]]){ result.push(arr[i]); obj[arr[i]] = 1; } } return result;}uniq([1,2,3,1])// 输出[1,2,3]
第五种:set方法
new Set([1,2,1,1,5]);输出:Set(3) {1, 2, 5}
阅读全文
0 0
- 数组去数组重
- 数组去重,json数组去重
- 数组去重
- 数组去重
- JS 数组去重
- 数组去重算法
- 数组去重
- js数组去重
- php 数组去重
- 数组去重
- 数组排序去重
- javascript数组去重
- json数组去重
- 数组去重
- php数组去重
- 数组如何去重
- iOS 数组去重
- 动态数组去重
- MySQL 第九篇:Mysql 与 ORACLE 开发差异、Mysql 优化
- 动态规划(DP)——斜率优化
- 对于ESP、EBP寄存器的理解
- 如何在tensorflow程序中对梯度进行反转
- htnl多个空格
- 数组去重
- VS2015编译32位Opencv310(动态库+静态库,文末有下载链接)
- git版本跟踪
- Mysql 锁表 for update (引擎/事务)
- 科技创新才能引领未来
- Add Two Numbers 解法
- GCC和G++区别
- ArrayList源码分析 JDK1.8
- 用hadoop实现倒排索引简单实例