当前位置: 首页 > news >正文

比较经典的数组去重和数组排序

Array.prototype.unique = function(){
  var res=[];
  var json = {};
  for(var i=0;i<this.length;i++){
     if(!json[this[i]]){
       res.push(this[i]);
       json[this[i]]=1;
     }
  }  
   return res;
}

数组合并,除了数组自带的方法concat,还可以使用其他的方法。

a=[1,2,3,4,5,6];

b=["foo","bar","fun"];

1、使用for循环来实现:

1 for(var i=a.length-1;i>=0;i--){
2   a.unshift(a[i]);  
3 }

2、使用apply

//在a的基础上添加b
a.push.apply(a,b);

//在b的基础上添加a
b.unshift.apply(b,a)

3、避免最大限度的限制。

function combinationInto(a,b){
   var len = a.length;
   for(var i=0;i<len;i=i+5000){
      b.unshift.apply(b, a.slice(i,i+5000));
}
}

数组排序

1、数组的自带方法sort(),可以设置是按正序,或者按倒序

function compare(a, b){
     return a-b;
}
sort(compare());

2、冒泡排序

function bubble(argument){
   var len=argument.length,temp;
   for(var i=0;i<len;i++){
      for(var j=0;j<len-1;j++){
         if(argument[j]>argument[j+1]){
            temp = argument[j];
            argument[j] = argument[j+1];
            argument[j+1] = temp;
         }
      }

   }  
    return   argument;
}

3、插入排序

var len = arr.length;
  for(var i=1;i<len;i++){

    var temp = arr[i];
		var tp;
    for(var j=i-1;j>=0;j--){

      if(temp>arr[j]){
				tp = arr[j]
        arr[j] = arr[j+1];
				arr[j+1] = tp;

      }else{ 
        break;
      }

    }   

  }
return arr;

}

  

  

  

  

  

转载于:https://www.cnblogs.com/WaTa/p/5498033.html

相关文章:

  • 为什么说Redis是单线程的以及Redis为什么这么快!
  • 缓存雪崩、缓存穿透、缓存预热、缓存更新、缓存降级等问题
  • HTTP协议 URL
  • 什么是一致性Hash算法?
  • 为什么你创建的数据库索引没有生效,索引失效的条件!
  • POJ3613 Cow Relays(矩阵快速幂)
  • 序列化和反序列化的底层实现原理是什么?
  • Android单个控件占父控件宽度一半且水平居中
  • Java提供的排序算法是怎么实现的?
  • 如何将一个长URL转换为一个短URL?
  • 一个CC++程序的生命历程
  • 为什么要有ID发号器、原理是什么以及如何实现?
  • Python系列之模块、和字符串格式化
  • 分布式之数据库和缓存双写一致性方案解析!
  • linux查看文件内容的常见命令
  • 「面试题」如何实现一个圣杯布局?
  • Android组件 - 收藏集 - 掘金
  • java 多线程基础, 我觉得还是有必要看看的
  • js面向对象
  • OpenStack安装流程(juno版)- 添加网络服务(neutron)- controller节点
  • PyCharm搭建GO开发环境(GO语言学习第1课)
  • python_bomb----数据类型总结
  • Redux 中间件分析
  • spring boot 整合mybatis 无法输出sql的问题
  • thinkphp5.1 easywechat4 微信第三方开放平台
  • vue-router 实现分析
  • zookeeper系列(七)实战分布式命名服务
  • 电商搜索引擎的架构设计和性能优化
  • 面试遇到的一些题
  • 前端技术周刊 2018-12-10:前端自动化测试
  • 在Docker Swarm上部署Apache Storm:第1部分
  • ​ 无限可能性的探索:Amazon Lightsail轻量应用服务器引领数字化时代创新发展
  • ​​​​​​​ubuntu16.04 fastreid训练过程
  • (09)Hive——CTE 公共表达式
  • (Redis使用系列) Springboot 使用redis的List数据结构实现简单的排队功能场景 九
  • (windows2012共享文件夹和防火墙设置
  • (大众金融)SQL server面试题(1)-总销售量最少的3个型号的车及其总销售量
  • (二)学习JVM —— 垃圾回收机制
  • (附源码)计算机毕业设计大学生兼职系统
  • (论文阅读22/100)Learning a Deep Compact Image Representation for Visual Tracking
  • (四)【Jmeter】 JMeter的界面布局与组件概述
  • (转)关于pipe()的详细解析
  • (转)淘淘商城系列——使用Spring来管理Redis单机版和集群版
  • (转载)Google Chrome调试JS
  • ***原理与防范
  • .NET / MSBuild 扩展编译时什么时候用 BeforeTargets / AfterTargets 什么时候用 DependsOnTargets?
  • .Net 6.0 处理跨域的方式
  • .NET Core Web APi类库如何内嵌运行?
  • .NET Core/Framework 创建委托以大幅度提高反射调用的性能
  • .NET 中什么样的类是可使用 await 异步等待的?
  • .net利用SQLBulkCopy进行数据库之间的大批量数据传递
  • .Net小白的大学四年,内含面经
  • .net与java建立WebService再互相调用
  • [2010-8-30]
  • [AIGC] Redis基础命令集详细介绍