章节
问答
课签
笔记
评论
占位
占位

数组排序sort()

sort()方法使数组中的元素按照一定的顺序排列。

语法:

arrayObject.sort(方法函数)

参数说明:

1.如果不指定<方法函数>,则按unicode码顺序排列。

2.如果指定<方法函数>,则按<方法函数>所指定的排序方法排序。

myArray.sort(sortMethod);

注意: 该函数要比较两个值,然后返回一个用于说明这两个值的相对顺序的数字。比较函数应该具有两个参数 a 和 b,其返回值如下: 

  若返回值<=-1,则表示 A 在排序后的序列中出现在 B 之前。
  若返回值>-1 && <1,则表示 A 和 B 具有相同的排序顺序。
  若返回值>=1,则表示 A 在排序后的序列中出现在 B 之后。

1.使用sort()将数组进行排序,代码如下:

<script type="text/javascript">
  var myarr1 = new Array("Hello","John","love","JavaScript"); 
  var myarr2 = new Array("80","16","50","6","100","1");
  document.write(myarr1.sort()+"<br>");
  document.write(myarr2.sort());
</script>

运行结果:

Hello,JavaScript,John,love
1,100,16,50,6,80

注意:上面的代码没有按照数值的大小对数字进行排序。

2.如要实现这一点,就必须使用一个排序函数,代码如下:

<script type="text/javascript">
  function sortNum(a,b) {
  return a - b;
 //升序,如降序,把“a - b”该成“b - a”
}
 var myarr = new Array("80","16","50","6","100","1");
  document.write(myarr + "<br>");
  document.write(myarr.sort(sortNum));
</script>

运行结果:

80,16,50,6,100,1
1,6,16,50,80,100

任务

1. 补充右边编辑器第8行,完成降序排列函数。

2. 补充右边编辑器第11行,使用sort()方法,进行数组降序列排列,并输出。

?不会了怎么办

1.排序函数,降序 return b - a;

2. document.write(myarr.sort(sortNum));

||
1
2
<!DOCTYPE html>
<html>
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
提交
重置代码
||

请验证,完成请求

由于请求次数过多,请先验证,完成再次请求

加群二维码

打开微信扫码自动绑定

您还未绑定服务号

绑定后可得到

  • · 粉丝专属优惠福利
  • · 大咖直播交流干货
  • · 课程更新,问题答复提醒
  • · 账号支付安全提醒

收藏课程后,能更快找到我哦~

使用 Ctrl+D 可将课程添加到书签

邀请您关注公众号
关注后,及时获悉本课程动态

举报

0/150
提交
取消
全部 精华 我要发布

最新回答 / qq_爱偷猫的鱼_0
F12打开控制台直接输入以下代码<...code...>

最新回答 / qq_慕的地9232376
1、看看有没有语法错误,如果有错不会报错,只是错误之后的不执行2、排序顺序调整一下试试3、看看输出的和排序的是不是同一个数组(非语法错误更难排查,容易忽略);

最新回答 / Elthen
一样的呀,你是说哪儿不一样

已采纳回答 / weixin_慕虎6181255
Unicode是一种在计算机上使用的字符编码。它为每种语言中的每个字符设定了统一并且唯一的二进制编码,以满足跨语言、跨平台进行文本转换、处理的要求。就是一种实现二进制编码的实现方式。类似于ASCII码的国际标准编码,采用二字节编码。一般在网络、Windows系统和很多大型软件中得到应用。

最赞回答 / 眼镜框
找了一个例子:function fun(){     return 5 } var a=fun var b=fun() a是fun函数,b是5也就是说:带括号的是把返回值赋值给事件,不带括号的是把函数体所在地址位置赋值给事件。再看myarr.sort(sortNum):这是他的语法定义:arrayObject.sort(方法函数),里面必须是一个函数,而不是一个返回值或者别的。以上作为参考,有错请指出。

最新回答 / 啊屁
但是在方法里调用函数的时候不加实参是会报错的

最新回答 / 啊屁
你不加分号的嘛

最赞回答 / weixin_慕桂英4205805
有说-1就调换吗,1就调换吗,有说会自动载入函数吗,啊?

已采纳回答 / ly今夕何夕
function fun(){  function  fun(){    return 5;}var a=fun var b=fun() a的值是fun()整个函数体,而b的值是5;    不带括号的调用 function : 函数体对象为参数    带括号的调用 function():立即执行函数后返回的值为参数望采纳?

最赞回答 / 狼王梦0_0
不带括号的调用 function : 函数体对象为参数带括号的调用 function():立即执行函数后返回的值为参数

最赞回答 / Code小白k1
https://blog.csdn.net/yyx19941129/article/details/49642515  转自CSDN

最赞回答 / 沈夜
其实sort()是自动排序了,但是它的排序规则不是你想要的,或者说不是我们大多数人所理解的。设置变量是为了让你能够定义排序规则。

已采纳回答 / 小王记笔记
上一行代码已经将其位置改变了,位置自然不一样了

最赞回答 / echo1203
不要乱理解! myarr.sort(sortNum) 相当于 myarr.sort(function sortNum(a,b) { return a -b;})。至于为什么这样写,建议查看文档  es6关于该方法的解释
全部 我要发布
最热 最新
只看我的

本次提问将花费2个积分

你的积分不足,无法发表

为什么扣积分?

本次提问将花费2个积分

继续发表请点击 "确定"

为什么扣积分?

账号登录 验证码登录

遇到问题
忘记密码

代码语言