为了账号安全,请及时绑定邮箱和手机立即绑定

请问在js中.sort() 这个括号中的参数是指定义排序顺序的函数,那么上面的这个函数怎么理解了?

请问在js中.sort() 这个括号中的参数是指定义排序顺序的函数,那么上面的这个函数怎么理解了?

陪伴而非守候 2019-09-20 15:14:23
js中.sort() 这个括号中的参数是指定义排序顺序的函数,那么上面的这个函数怎么理解了?
查看完整描述

5 回答

?
蝴蝶不菲

TA贡献1810条经验 获得超4个赞

sort的参数,为一个函数,那么这个函数接受2个参数,a, b
这个函数在:
a == b 是为0
a > b 时为 1
a < b时 为-1
那么sort在排序的时候,根据冒泡排序,传递2个数进来
对于
arr[0] = "10"
arr[1] = "5"
那么 a=10 b=5,
显然a > b,那么sort根据这个函数返回的结构,就开始排了,
5, 10
那么第一次结束时: 5 10 40 25 1000 1
接下来:然后5 跟 40 25 1000 1排,
完了只有是: 1 10 40 25 1000 5
然后从10 开始,10 - 40 10 <->25 10 <-> 1000 10 <->5
结束后:1 5 40 25 1000 10
再40 : 1 5 10 25 1000 40
再 25 :
再 1000 : 1 5 10 25 40 1000
到此,最后一位就剩一个了,没有啥比较的了,排序完成





查看完整回答
反对 回复 2019-09-22
?
慕运维8079593

TA贡献1876条经验 获得超5个赞

sort() 是对数组进行排序,调用方法为:
array.sort() 按照你的程序 调用为 arr.sort();就好了,

var arr = new Array(6)
arr[0] = "10";
arr[1] = "5";
arr[2] = "40";
arr[3] = "25";
arr[4] = "1000";
arr[5] = "1";
document.write(arr.sort());

我给你修改了下程序,现在输出的话 应该是:
1,10,1000,25,40,5

按照字母顺序排序,因为 你数组的元素数据类型为 String





查看完整回答
反对 回复 2019-09-22
?
12345678_0001

TA贡献1802条经验 获得超5个赞

定义和用法:

sort() 方法用于对数组的元素进行排序。

语法:

1arrayObject.sort(sortby)

描述:

sortby    可选。规定排序顺序。必须是函数。    

返回值:

对数组的引用。请注意,数组在原数组上进行排序,不生成副本。

说明:

如果调用该方法时没有使用参数,将按字母顺序对数组中的元素进行排序,说得更精确点,是按照字符编码的顺序进行排序。要实现这一点,首先应把数组的元素都转换成字符串(如有必要),以便进行比较。

如果想按照其他标准进行排序,就需要提供比较函数,该函数要比较两个值,然后返回一个用于说明这两个值的相对顺序的数字。比较函数应该具有两个参数 a 和 b,其返回值如下:

若 a 小于 b,在排序后的数组中 a 应该出现在 b 之前,则返回一个小于 0 的值。

若 a 等于 b,则返回 0。

若 a 大于 b,则返回一个大于 0 的值。





查看完整回答
反对 回复 2019-09-22
  • 5 回答
  • 0 关注
  • 397 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信