js中的数组排序方法

一、sort方法对数组排序

1 var abc = [4, 45, 1, 2, 5, 55, 441, 11, 11];
2 abc.sort(function(a, b) {
3    return a - b;
4  })
5 console.log(abc) //[1, 2, 4, 5, 11, 11, 45, 55, 441]
1 var abc = [4, 45, 1, 2, 5, 55, 441, 11, 11];
2 abc.sort(function(a, b) {
3     return b-a;
4 })
5 console.log(abc) //[441, 55, 45, 11, 11, 5, 4, 2, 1]

二、冒泡排序

含义:依次对数组中相邻数字进行比较(两两比较),大的放后面

 1 var arr=[1,5,4,2,10,8,8,20,15,14,12];
 2 function minArr(arr){
 3     var temp=null;  //定义一个存储元素值得存储器
 4     for(var i=0;i<arr.length;i++){
 5         for(var j=i+1;j<arr.length;j++){
 6             if(arr[i]>arr[j]){  //假设第一个元素大于第二个元素
 7                 temp=arr[i];  
 8                 arr[i]=arr[j];
 9                 arr[j]=temp;
10             }
11         }
12     }
13     console.log(arr);  //[1, 2, 4, 5, 8, 8, 10, 12, 14, 15, 20]
14 }
15     minArr(arr);

三、选择排序

概念:将第一位依次与后面的元素相比较,得到最小值,与第一位交换。再用第二位依次与后面元素相比较,得到最小值,与第二位交换。

从原始数据中找到最小元素,并放在数组的最前面。然后再从下面的元素中找到最小元素,放在之前最小元素的后面,直到排序完成。

 1 var arr=[1,2,5,22.2,6.63,55,4,5,3.99,99.99,5,4,11];
 2         for(let i=0;i<arr.length-1;i++){
 3             var min=arr[i];//假设第一位是最小值
 4             var minIndex=i;//再拿到最小值时的索引
 5             for(let j=i+1;j<arr.length;j++){
 6                 if(min>arr[j]){//假设失败 最小值大于了后一位的值
 7                     min=arr[j];//存储此时的最小值
 8                     minIndex=j;//存储此时最小值的索引
 9                 }
10             }
11             arr[minIndex]=arr[i];//再把第一位的数据放在第二位最小值的位置
12             arr[i]=min;//再把最小值放在第一位的位置
13         }
14         console.log(arr)

四、set方法

set方法不仅可以对数组排序,还可以去重

1 var arr=[1,5,4,2,10,8,8,20,15,14,12];
2
3 var newarr=new Set(arr);
4
5 console.log(newarr)

原文地址:https://www.cnblogs.com/alongup/p/8607424.html

时间: 2024-10-24 23:25:32

js中的数组排序方法的相关文章

php学习笔记(JS中的常见方法)

JS中的常见方法: 1.日期时间函数(需要用变量调用): var b = new Date(); //获取当前时间 b.getTime() //获取时间戳 b.getFullYear() //获取年份 b.getMonth()+1; //获取月份 b.getDate() //获取天 b.getHours() //获取小时 b.getMinutes() //获取分钟 b.getSeconds() //获取秒数 b.getDay() //获取星期几 b.getMilliseconds() //获取毫

js中使用eval()方法将字符串转换成日期格式、并获取指定时间的日期

1.在js中eval()方法将字符串格式数据转换成日期格式 function getDate(strDate) {         //strDate为需要转换成日期格式的字符串         var date = eval('new Date(' + strDate.replace(/\d+(?=-[^-]+$)/,                 function (a) { return parseInt(a, 10) - 1; }).match(/\d+/g) + ')');    

JS中通过call方法实现继承

讲解都写在注释里面了,有不对的地方请拍砖,谢谢! <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>JS通过call方法实现继承</title> </head> <body> <script type="text/javascript"> /* js中的继承有多种实现方式,今天我们讨论下通过call方法实现的继承. 此

Js中sort(sortfun)方法

1 <meta charset="utf-8" /> 2 3 <script language="javascript"> 4 5 /** 6 * @date 2014-10-23 11:17:04 7 * @via http://www.jb51.net/article/4168.htm 8 * @topic Js中sort(sortfun)方法 9 * @return 一个元素已经进行了排序的 Array 对象. 10 * @sortfu

笔记-[6]-js中事件绑定方法的总结

js中的两种对象事件绑定方法: 1:常用的如:div.onclick=function(){...}; 2:通过系统方法绑定事件: 非IE:addEventListener('事件名[不加on]',function(){},false[或者true]) IE:attachEvent('事件名[加on]',function(){}); 通过系统方法绑定事件可以让对象可以绑定相同的事件并且执行不同的操作,如果使用第一种方法绑定多个相同的事件,最后一个事件会覆盖前面所有的事件. 在addEventLi

JavaScript开发之旅(2):JS中的tostring()方法

看到一个toString()方法,在JS中,定义的所有对象都具有toString()方法. 定义和用法 toString() 方法可把一个逻辑值转换为字符串,并返回结果. 语法 booleanObject.toString(); 返回值 根据原始布尔值或者 booleanObject 对象的值返回字符串 "true" 或 "false". 抛出 如果调用该方法的对象不是 Boolean,则抛出异常 TypeError. 创建一个 Boolean 对象,并把它转换成字

字符串方法,js中的数组方法,ES5新增的数组方法,以及jQuery中的数组方法

说明:本片主要对比介绍与数组操作相关的方法 (一)字符串方法(String对象方法) indexOf() //检索字符串 lastIndexOf() //从后向前搜索字符串 match() //找到一个或多个正则表达式的匹配 replace() //替换与正则表达式匹配的子串 search() //检索与正则表达式相匹配的值 slice() //提取字符串的片断,并在新的字符串中返回被提取的部分 split() //把字符串分割为字符串数组 substr() //从起始索引号提取字符串中指定数目

JS中函数调用的方法

JavaScript 函数有 4 种调用方式.每种方式的不同方式在于 this 的初始值. 1.作为一个函数调用 function myFunction(a, b) { return a* b; } myFunction(10, 2); // myFunction(10, 2) 返回 20 或 function myFunction() { return this; } myFunction(); // 返回 window对象 this为window对象. 2.作为方法调用 var myObje

js中的tostring()方法

今天看JS学习资料,看到一个toString()方法,在JS中,定义的所有对象都具有toString()方法. Number类型的toString()方法比较特殊,有默认模式和基模式两种. 默认模式的例子: var num1 = 10; var num2 = 10.0; alert(num1.toString());//输出10 alert(num2.toString());//输出10 无论你用什么表示法声明数字,默认模式只是按十进制返回. 基模式的例子: var num1 = 10; ale