javascript sort方法怎么排序

javascript中, sort方法用于根据一定条件对数组元素进行排序。如果调用sort()方法时没有传递参数,则按字母顺序对数组中的元素进行排序;如果提供一个函数参数,则根据该函数提供的顺序来对数组中的元素进行排序。

javascript sort方法怎么排序

本教程操作环境:windows7系统、javascript1.8.5版、Dell G3电脑。

sort() 方法能够根据一定条件对数组元素进行排序。如果调用 sort() 方法时没有传递参数,则按字母顺序对数组中的元素进行排序。

var a = ["a","e","d","b","c"];  //定义数组a.sort();  //按字母顺序对元素进行排序console.log(a);  //返回数组[a,b,c,d,e]

登录后复制

使用 sort() 方法时,应该注意下面几个问题。

1) 所谓的字母顺序,实际上是根据字母在字符编码表中的顺序进行排列的,每个字符在字符表中都有一个唯一的编号。

立即学习“Java免费学习笔记(深入)”;

2) 如果元素不是字符串,则 sort() 方法试图把数组元素都转换成字符串,以便进行比较。

3) sort() 方法将根据元素值进行逐位比较,而不是根据字符串的个数进行排序。

var a = ["aba","baa","aab"];  定义数组a.sort();  //按字母顺序对元素进行排序console.log(a);  //返回数组[aab,aba,baa]

登录后复制

在排序时,首先比较每个元素的第 1 个字符,在第 1 个字符相同的情况下,再比较第 2 个字符,以此类推。

4) 在任何情况下,数组中 undefined 的元素都被排序在末尾。

5) sort() 方法是在原数组基础上进行排序操作的,不会创建新的数组。

sort() 方法不仅按字母顺序进行排序,还可以根据其他顺序执行操作。这时就必须为方法提供一个函数参数,该函数要比较两个值,然后返回一个用于说明这两个值的相对顺序的数字。排序函数应该具有两个参数 a 和 b,,其返回值如下。

如果根据自定义评判标准,a 小于 b,在排序后的数组中 a 应该出现在 b 之前,就返回一个小于 0 的值。

如果 a 等于 b,就返回 0。

如果 a 大于 b,就返回一个大于 0 的值。

示例1

在下面示例中,将根据排序函数比较数组中每个元素的大小,并按从小到大的顺序执行排序。

function f(a,b) {  //排序函数    return (a - b);  //返回比较参数}var a = [3,1,2,4,5,7,6,8,0,9];  //定义数组a.sort(f);  //根据数字大小由小到大进行排序console.log(a);  //返回数组[0,1,2,3,4,5,6,4,7,8,9]

登录后复制

如果按从大到小的顺序执行,则让返回值取反即可。代码如下:

function f(a,b) {  //排序函数    return -(a - b);  //取反并返回比较参数}var a = [3,1,2,4,5,7,6,8,0,9];  //定义数组a.sort(f);  //根据数字大小由小到大进行排序console.log(a);  //返回数组[9,8,7,6,5,4,3,2,1,0]

登录后复制

示例2

根据奇偶性质排列数组。

sort() 用法比较灵活,主要是函数排序比较。例如,如果根据奇偶数顺序排序数组,只需要判断顺序函数中两个参数是否为奇偶数,并决定排列顺序。

function f(a, b) {  //排序函数    var a = a % 2;  //获取参数a的奇偶性    var b = b % 2;  //获取参数b的奇偶性    if (a == 0) return 1;  //如果参数a为偶数,则排在左边    if (b == 0) return -1;  //如果参数b为偶数,则排在右边}var a = [3,1,2,4,5,7,6,8,0,9];  //定义数组a.sort(f);  //根据数字大小由大到小进行排序console.log(a);  //返回数组[3,1,5,7,9,0,8,6,4,2]

登录后复制

sort() 方法在调用排序函数时,对每个元素值传递给排序函数,如果元素值为偶数,则保留其位置不动;如果元素值为奇数,则调换参数 a 和 b 的显示顺序,从而实现对数组中所有元素执行奇偶排序。如果希望偶数排在前面,奇数排在后面,则只需要取返回值。排序函数如下。

function f(a, b) {    var a = a % 2;    var b = b % 2;    if (a == 0) return -1;    if (b == 0) return 1;}

登录后复制

示例3

不区分大小写排序字符串。

在正常情况下,对字符串进行排序是区分大小写的,这是因为每个大写字母和小写字母在字符编码表中的顺序是不同的,大写字母大于小写字母。

var a = ["aB", "Ab", "Ba", "bA"];  //定义数组a.sort();  //默认方法排序console.log(a);  //返回数组["Ab", "Ba", "aB", "bA"]

登录后复制

大写字母总是排在左侧,如果让小写字母总是排在左侧,可以设计:

function f(a ,b) {    return (a 

对于字母比较大小时,JavaScript 是根据字符编码大小来决定的,当为 true 时,则返回 1;为 false 时,则返回 -1。

如果不希望区分大小写,大写字母和小写字母按相同顺序排列,可以设计:

function f(a, b) {    var a = a.toLowerCase;    var b = b.toLowerCase;     if (a 

如果要调整排列顺序,则设置返回值取反即可。

示例4

把浮点数和整数分开显示。

function f(a, b) {  //排序函数    if (a > Math.floor(a)) return 1;  //如果a是浮点数,则调换位置    if (b > Math.floor(b)) return -1;  //如果b是浮点数,则调换位置}var a = [3.5555, 1.23456, 3, 2.11111, 5, 7, 3];  //定义数组a.sort(f);  //进行筛选console.log(a);  //返回数组[3,5,7,3,2.11111,1.23456,3.55555]

登录后复制

如果要调整排序顺序,则设置返回值取反即可。

【推荐学习:javascript高级教程】

以上就是javascript sort方法怎么排序的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2710040.html

(0)
上一篇 2025年3月7日 20:48:37
下一篇 2025年3月7日 20:48:45

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • JavaScript求x平方怎么做

    JavaScript求x平方的方法:1、使用幂运算符“**”,可以返回第一个操作数做底数,第二个操作数做指数的乘方,语法“x ** 2”;2、使用pow()方法,可返回x的y次幂,语法“Math.pow(x,2)”。 本教程操作环境:win…

    2025年3月7日
    000
  • javascript怎么跳出循环

    javascript跳出循环的方法:1、使用continue语句,可以终止当前循环,并马上进入下一次循环;2、使用break语句,可以退出整个循环,break语句后续的代码以及后面的循环都不会被执行。 本教程操作环境:windows7系统、…

    2025年3月7日
    200
  • JavaScript中什么是Set?什么时候使用?如何使用?

    javascript在一些情况下是需要使用set的。下面本篇文章就带大家了解一下set,介绍一下什么是set、什么时候使用 set、set的数据操作(交集、差集、交集、对称差集)。 在许多情况下,需要比较多个列表,获取它们有或没有交集、差集…

    2025年3月7日
    200
  • javascript怎么实现按钮隐藏div

    javascript实现按钮隐藏div的方法:首先创建一个前台示例文件;然后根据id按钮获取点击事件;最后添加事件处理函数即可。 本文操作环境:windows7系统、javascript1.8.5&&html5版,DELL …

    2025年3月7日
    200
  • javascript有哪些主要框架

    javascript主要框架:Angular、React、MeteorJS、Vuejs、Node.js、Backbone、Ember.js、three.js、Mocha、Next.js、Polymer、Mithril等等。 本教程操作环境:…

    2025年3月7日 编程技术
    200
  • javascript主要用来干啥

    javascript主要用于:1、使页面具有动态效果;2、校验页面用户所填的控件值是否符合程序的规定;3、用Script控制表单标签的显示形式、控制显示样式等。 本教程操作环境:windows7系统、javascript1.8.5版、Del…

    2025年3月7日
    200
  • javascript中的惰性求值是什么

    如果在一个连续的逻辑操作中,操作结果在最后一个操作完成之前就已经明确了的话,那么该操作往往就不必再继续执行了,因为这已经不会对最终结果产生任何影响。 本教程操作环境:windows7系统、javascript1.8.5版、Dell G3电脑…

    2025年3月7日
    200
  • 如何改变Javascript的执行顺序

    方法:1、利用onload;2、IE中可以利用deferdefer,把代码加载下来,并不立即执行,等文档装载完毕之后再执行;3、利用Ajax中的xmlhttpRequest,判断外部文档加载的状态。 本教程操作环境:windows7系统、j…

    2025年3月7日
    200
  • javascript运行没有效果是怎么回事?

    javascript运行没有效果的原因有:1、所使用的浏览器禁用了该脚本;2、脚本代码有错误;3、脚本没被调用或脚本内容没有显示效果。 本教程操作环境:windows7系统、javascript1.8.5版、Dell G3电脑。 分析可能原…

    2025年3月7日
    200
  • javascript多线程如何实现

    在js中,可以使用Worker类来实现多线程,语法格式为“var worker = new Worker(js文件路径);”。使用这个类的时候,它就会向浏览器申请一个新的线程,该线程就用来单独执行一个js文件。 本教程操作环境:window…

    2025年3月7日
    200

发表回复

登录后才能评论