数组去重的六种方法与扩展
来源:互联网 发布:tfs文件系统java 编辑:程序博客网 时间:2024/05/18 00:54
方法一:
function unique11(arr){ arr.sort(function(a,b){return a-b;}); var result=[]; for(var i=0;i<arr.length;i++){ if(arr[i+1]!==arr[i]){ result.push(arr[i]);; } } return result; } console.log(unique11([1,2,2,2,12,3,4,5]));
function unique12(arr){ return arr.concat().sort().filter(function(value, index, array) { return !index || value != array[index - 1]; }); } console.log(unique12([1,2,2,2,12,3,4,5]));
方法二:
function unique21(arr){//更快一点 var result=[]; for(var i=0;i<arr.length;i++){ if(result.indexOf(arr[i])===-1){ result.push(arr[i]); } } return result; } console.log(unique21([1,2,2,2,12,3,4,5]));
function unique22(arr){//更快一点 var result=[]; for(var i=0;i<arr.length;i++){ (result.indexOf(arr[i])===-1)&&result.push(arr[i]); } return result; } console.log(unique22([1,2,2,2,12,3,4,5]));
方法三:
function unique31(arr){ var obj={},result=[]; for(var i=0;i<arr.length;i++){ if(!obj[arr[i]]){ result.push(arr[i]); obj[arr[i]]=true; } } return result; } console.log(unique31([1,2,2,2,12,3,4,5]));
function unique32(arr){ var obj={}; return arr.filter(function(key) { return obj.hasOwnProperty(key) ? false : (obj[key] = true); }); } console.log(unique32([1,2,2,2,12,3,4,5]));
方法四:
function unique41(arr){ var result=[]; for(var i=0;i<arr.length;i++){ if(arr.indexOf(arr[i])===i){ result.push(arr[i]); } } return result; } console.log(unique41([1,2,2,2,12,3,4,5]));
function unique42(arr){ var result=[]; result=arr.filter(function(value,index,array){ return array.indexOf(value)===index; }) return result; } console.log(unique42([1,2,2,2,12,3,4,5]));
方法五:
function unique5(arr){//优化的遍历数组,推荐的方法,获取没重复的最右一值放入新数组。 var result = []; var len = arr.length; for(var i = 0; i < len; i++) { for(var j = i + 1; j < len; j++){ if (arr[i] === arr[j]){ j=++i;//i=i+1;j=i; 找到最近的那个后面再没有相同的值的元素插进去 } } result.push(arr[i]); } return result; } console.log(unique5([1,2,2,2,12,3,4,5]));
方法六:
function unique61(arr){ return [...(new Set(arr))]; } console.log(unique61([1,2,2,2,12,3,4,5]));
function unique62(arr){ return Array.from(new Set(arr)); } console.log(unique62([1,2,2,2,12,3,4,5]));
阅读全文
0 0
- 数组去重的六种方法与扩展
- JS实现数组去重方法总结(六种方法)
- js 数组扩展元素去重的方法
- 六种方法实现JavaScript数组去重
- 数组去重的四种方法
- 数组去重的两种方法
- 数组去重的三种方法
- 数组去重的五种方法
- 数组去重的三种方法
- 数组去重的两种方法
- 数组去重的几种方法
- 数组去重的2种方法
- 数组去重的三种方法
- 数组去重的6种方法
- 数组去重的几种方法
- 数组去重的四种方法
- 数组去重的几种方法
- 数组去重的几种方法
- 解决全志R16平台的新版本tinav2.1系统的PING自己的问题(分色排版)
- 数据库主键和外键的区别
- Destructuring (解构)
- springboot 跨域访问
- 数据结构之顺序线性表
- 数组去重的六种方法与扩展
- Gson应用:利用map和list来拼装Json消息
- 安装hadoop集群
- Android Fragment 深度解析
- MyBatis高级映射之多对多查询
- 联想拯救者R720-15IKB笔记本如何u盘装系统?
- 关于多线程锁的获取
- RTSP协议
- Maven pom.xml