实在是没搞懂这里的函数具体啥意思?

来源:7-22 数组排序sort()

黑色丶毛衣

2016-05-28 15:34

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Array对象 </title>
<script type="text/javascript">
   function sortNum(a,b) {
        return b-a;
   }
   function sortnum(a,b){
       return a-b;//可以采用a+b?a*b?a/b?这些吗?
   }
var myarr = new Array("80","16","50","6","100","1");//这个赋值方法不对吗?希望给个链接。
document.write(myarr.sort()+"<br />");
document.write(myarr.sort(sortNum)+"<br />");
document.write(myarr.sort(sortnum()));//调用上面的函数可以传入实参么?
</script>
</head>
<body>
</body>
</html>

注释的地方还是不明白~

写回答 关注

4回答

  • qq_飞扬_13
    2016-06-17 16:57:11

    var arr=[5,3,9,4,2,18,7];

    var newarr=new Array(arr.length+1);

    for(var i=0;i<arr.length;i++){

    for(var j=i+1;j<arr.length;j++){

    if(arr[i]<arr[j]){

    newarr[i]=arr[j];

    arr[j]=arr[i];

    arr[i]=newarr[i];

    }

    }

    }

    alert(arr);


  • 大神在路上
    2016-06-15 11:53:53

    <script type="text/javascript">

       function sortNum(a,b) {

     return b-a;

       }

    var myarr = new Array("80","11","11","6","100","1");

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

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

    排序时比较的是紧邻的两位数,如上例,数组new Array("80","11","19","6","100","1");按

     function sortNum(a,b) {

     return b-a;//估计用a/b也行,同正或同负。a/b>1,则a>b。0<a/b<1,则a<b。a/b=1,则a=b。但是有很多缺点有0不行,异号不行,sort()方法只认返回值与-1,1的关系。如果有认返回值与1相比较的关系的方法的话估计用a/b就行。小白一枚知识有限还没往下学,不知道后面有没有解决办法。

       }

    去排序,先比较80,11此时80就是A,11就是B。b-a就是11-80小于0,则A在B前即80在11前,数组顺序变成80,11,19,6,100,。然后比较11,19。此时11是A,19是B,b-a就是19-11>0,则A在B之后即11在19之后,数组顺序变成80,19,11,6,100,后面的也是这样,一轮比较结束后最后变成80,19,11,100,6。然后继续循环比较第二轮变成80,19,100,11,6。继续循环直到100,80,19,11,6。我是用C语言的思想这么理解的。

  • 請叫我偽文藝青年3414156
    2016-05-28 16:26:41

    function sortNum(a,b) {

            return b-a;

       }     //这个函数返回的是b-a的值

       function sortnum(a,b){

           return a-b;

       } //这个函数返回的是a-b的值

    var myarr = new Array("80","16","50","6","100","1"); //这种建立数组的方法不对 

    document.write(myarr.sort()+"<br />"); 

    document.write(myarr.sort(sortNum)+"<br />");

    document.write(myarr.sort(sortnum()));//这里的函数调用可以传入实参么?


    Miaos 回复黑色丶毛衣

    貌似这样赋值就是String了,数字的话应该不用引号吧

    2016-06-21 15:01:07

    共 3 条回复 >

  • 指尖泛出的繁华
    2016-05-28 16:22:36
    arrayObject.sort(方法函数)

    sortNum(a,b)这个就是方法函数。

    例如以下方法函数:

    function sortNum(a,b) {
            return b-a;
       }

    这个方法函数就是返回b是否大于a,如果b大于a,方法函数返回true,其目的是执行b>a的排序

    黑色丶毛衣

    看来,您并没有看我贴的注释啊?另外,这个函数为什么要返回true,而不是b-a的值呢?

    2016-05-28 16:37:34

    共 1 条回复 >

JavaScript进阶篇

本课程从如何插入JS代码开始,带您进入网页动态交互世界

468061 学习 · 21891 问题

查看课程

相似问题