冒泡排序

var arr = [, , , , , , , ];
function test(){
for (var i = ; i < arr.length - ; i++){
for (var j = i + ; j < arr.length; j++){
var tempi = arr[i]; //获取第一个值,并与后一个值比较
var tempj = arr[j];
if (tempi > tempj){
arr[i] = tempj;
arr[j] = tempi;//如果前一个值比后一个值大,那么相互交换
}
}
}
console.log(arr); //return arr;
}
test(arr); //[1, 2, 3, 4, 6, 9, 49, 50]

简单粗暴的使用sort()方法进行升序、降序排列

var arr = [, , , , , , , ];
function test(arr) {
if( arr.length < ){
return //如果数组长度小于1,直接返回,没有比较的必要
}
return arr.sort(sortNum)
};
function sortNum(a,b) {
return a - b; //倒序就是b-a
}
test(arr) //[1, 2, 3, 4, 6, 9, 49, 50]

还可以利用sort 方法的返回值,做数组的随机排序

var arr = [, , , , , , , ];

function test(arr) {
if(arr.length < ) {
return
}
return arr.sort(randomSrot)
}
function randomSrot(a,b) {
return Math.random() > 0.5 ? - : ;
}
test(arr);
//利用Math.random()方法可以返回0~1之间的随机数,然后和0.5比较,来决定返回值是1还是-1

数组去重的几种方法

1.最常使用的indexOf()
var arr = [,,,,,,,,,,,];
function test(arr) {
var result = []; //用来存放新数组
var len = arr.length;
for(var i = ; i < len; i++) {
if(result.indexOf(arr[i])== -) { //如果新数组查询不到当前的数组成员,就把他添加进新数组
result.push(arr[i])
}
}
return result;
}
test(arr);//[1, 12, 13, 8, 9, 7, 5]

2.最简洁的方法,使用es6 的新数据类型set()
var arr = [,,,,,,,,,,];
var arr2 = [...new Set(arr)]; //[1, 12, 13, 8, 9, 7, 5]

记录下js几种常见的数组排序和去重的方法的更多相关文章

  1. ElasticSearch 学习记录之ES几种常见的聚合操作

    ES几种常见的聚合操作 普通聚合 POST /product/_search { "size": 0, "aggs": { "agg_city&quo ...

  2. Web前端几种常见的实现水平垂直居中的方法

    第一种: 父容器不设置宽度,用定位实现水平垂直居中. <!DOCTYPE html> <html lang="en"> <head> <m ...

  3. 记录下 js各种证件的正则验证

    身份证 /(^\d{15}$)|(^\d{17}([0-9]|X)$)/    护照 /^[a-zA-Z0-9]{3,21}$/   /^(P\d{7})|(G\d{8})$/    军官证或士兵证 ...

  4. js几种常见排序的实现

    1. 冒泡排序 定义: 比较相邻的前后二个数据,如果前面数据大于后面的数据,就将二个 数据交换. 这样对数组的第0个数据到N-1个数据进行一次遍历后,最大的一个数据就"沉"到数组第 ...

  5. .Net中几种常见的页面跳转传值方法

    1.ASP Server对象Execute方法 ASP Server对象的Execute方法可以在执行当前页面的过程中将另一个页面执行结果的内容插入到当前页面的输出中.Execute方法带一个参数,是 ...

  6. Chrome:开发者模式下js文件中代码显示在一行的解决方法

    比如我随便打开一个js文件,可以发现它的代码都挤在一行中,这对我们查找一些变量很不友好 解决方式:点击图中标红的那个按钮就可以了

  7. 你值得关注的几种常见的js设计模式

    前言 潜水了一段时间,今天空闲时间复盘下之前的知识点,聊聊 js 几种常见的设计模式. 掌握 JavaScript 中常见的一些设计模式,对我们书写规范性代码,可维护性代码有很大的帮助. ps:最近在 ...

  8. SQL Server-5种常见的约束

    引自:http://www.cnblogs.com/dekevin/p/4772235.html SQLServer 中有五种约束, Primary Key 约束. Foreign Key 约束. U ...

  9. JS数组去重的几种常见方法

    JS数组去重的几种常见方法 一.简单的去重方法 // 最简单数组去重法 /* * 新建一新数组,遍历传入数组,值不在新数组就push进该新数组中 * IE8以下不支持数组的indexOf方法 * */ ...

随机推荐

  1. 005-tomcat日志体系

    一.概述 首先了解java的日志体系 在JDK1.4后,sun公司增加了一个包为java.util.logging,简称为jul,用以对抗log4j. 后续还有很多日志门面方案,但是tomcat使用了 ...

  2. 阶段5 3.微服务项目【学成在线】_day09 课程预览 Eureka Feign_05-Feign远程调用-客户端负载均衡介绍

    2 Feign远程调用 在前后端分离架构中,服务层被拆分成了很多的微服务,服务与服务之间难免发生交互,比如:课程发布需要调用 CMS服务生成课程静态化页面,本节研究微服务远程调用所使用的技术. 下图是 ...

  3. [Paper翻译]Scalable Lock-Free Dynamic Memory Allocation

    原文: http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.87.3870&rep=rep1&type=pdf Abstr ...

  4. OpenStack社区中的GO语言之争

    1 背景介绍 Swift之前几乎所有的代码都是用Python实现的,但是性能一直不理想, 社区为了解决性能问题,尝试过很多方法,后来发现用Golang语言进行一部分代码重写, 性能得到了一定的提升,社 ...

  5. PAT 甲级 1032 Sharing (25 分)(结构体模拟链表,结构体的赋值是深拷贝)

    1032 Sharing (25 分)   To store English words, one method is to use linked lists and store a word let ...

  6. pycurl模块

    pycurl的使用 pycurl是curl的一个python版本. pycurl的使用说明: pycurl的使用主要是一些参数的设定. 1,c.setopt(pycurl.URL,myurl) 设定链 ...

  7. MySQL从.ibd文件中恢复数据

    首先,在MySQL命令行下执行如下命令可以查看MySQL中存放数据的位置: show global variables like "%datadir%"; 我这里的执行结果: +- ...

  8. 【Leetcode_easy】709. To Lower Case

    problem 709. To Lower Case solution1: class Solution { public: string toLowerCase(string str) { stri ...

  9. Efcore迁移

    Efcore迁移 Add-Migration XX:1.根据模型的实际结构对比当前快照,从而生成新迁移文件的Up和Down方法2.根据模型的实际结构修改快照和新迁移文件---------------- ...

  10. python全栈索引

    书签 python基础 太白金星 TigerLee python基础一 pytcharm安装详细教程 python基础二 python基础数据类型 Python最详细,最深入的代码块小数据池剖析 深浅 ...