JS中数组重排序方法

作者:木木夕木木心 时间:2024-04-22 22:34:27 

1.数组中已存在两个可直接用来重排序的方法:reverse()和sort()。

reverse()和sort()方法的返回值是经过排序后的数组。reverse()方法会反转数组项的顺序:


var values=[1,2,3,4,5];
values.reverse();
alert(values); //5,4,3,2,1

在默认情况下,sort()方法按升序排列数组,sort()方法会调用每个数组项的toString()转型方法,然后比较得到字符串,确定如何排序。即使数组中的每一项都是数值,sort()方法比较的也是字符串:


var values = [0,1,5,10,15];
values.sort();
alert(values); //0,1,10,15,5

因此,sort()方法可以接收一个比较函数作为参数。


function compare(value1,value2){
if (value1 < value2){
return -1;
}else if (value1 > value2){
return 1;
}else{
return 0;
}
}

此比较函数可适用于大多数数据类型,只要将其作为参数传递给sort()方法即可:


var values = [0,1,3,7,9,15];
values.sort(compare);
alert(values); //0,1,3,7,9,15

也可通过比较函数产生降序排序,只需交换函数返回值即可:


function compare (value1, value2){
if (value1<value2){
return 1;
}else if {
return -1;
}else{
return 0;
}
}

sort()函数的排序条件是:

参数大于0,arr的相邻两个元素交换位置;

参数小于0,arr的相邻两个元素不交换位置;

参数等于0,arr的相邻两个元素大小相等;所以compare自定义函数必须返回一个数值。

2.对于数值类型或者valueOf()方法会返回数值类型的对象类型。

可使用一个更简单的比较函数。此函数只要第二个值减第一个值即可。


function compare (value1,value2){
return value2 - value1;
}

以上所述是小编给大家介绍的JS中数组重排序方法网站的支持!

来源:http://www.cnblogs.com/daisy12/archive/2016/11/10/6051927.html

标签:js,数组,排序
0
投稿

猜你喜欢

  • 如何在django里上传csv文件并进行入库处理的方法

    2022-02-07 00:19:31
  • Python基础-特殊方法整理详解

    2022-08-11 00:46:31
  • Zend Framework动作助手Redirector用法实例详解

    2024-05-13 09:53:15
  • 浅谈Python反射 & 单例模式

    2023-10-14 21:16:30
  • DreamWeaver经典技巧四则

    2007-12-03 11:34:00
  • Python中print函数简单使用总结

    2022-08-07 19:28:36
  • opencv-python 开发环境的安装、配置教程详解

    2022-04-25 22:14:58
  • vue 引用自定义ttf、otf、在线字体的方法

    2024-04-30 10:18:47
  • Windows和夜神模拟器上抓包程序mitmproxy的安装使用详解

    2023-11-15 12:29:21
  • 如何用Python绘制棒棒糖图表

    2021-05-02 06:26:33
  • Python爬虫实战演练之采集拉钩网招聘信息数据

    2022-02-05 12:54:32
  • python 用递归实现通用爬虫解析器

    2022-04-15 08:13:55
  • MySQL批量更新的四种方式总结

    2024-01-13 17:53:08
  • 详解Python绘图Turtle库

    2021-11-29 05:42:06
  • asp程序定义变量比不定义变量速度快一倍

    2012-12-04 20:06:32
  • 基于Tensorflow使用CPU而不用GPU问题的解决

    2022-01-01 22:53:08
  • MYSQL创建触发程序的方法

    2009-07-30 08:38:00
  • eWebEditor_v280_Free_Final最好用的网页编辑器下载

    2022-05-26 22:30:24
  • 使用Matplotlib 绘制精美的数学图形例子

    2022-11-25 11:03:04
  • python3.4中清屏的处理方法

    2023-11-14 04:09:21
  • asp之家 网络编程 m.aspxhome.com