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

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

<!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 回答

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);


0 回复 有任何疑惑可以回复我~

<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语言的思想这么理解的。

0 回复 有任何疑惑可以回复我~

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()));//这里的函数调用可以传入实参么?


0 回复 有任何疑惑可以回复我~
#1

黑色丶毛衣 提问者

构造函数里不能直接赋值吗?您能帮忙给个相关链接吗?
2016-05-28 回复 有任何疑惑可以回复我~
#2

黑色丶毛衣 提问者

刚查了下,赋值方面没错!给您个链接:http://www.w3school.com.cn/js/js_obj_array.asp
2016-05-28 回复 有任何疑惑可以回复我~
#3

Miaos 回复 黑色丶毛衣 提问者

貌似这样赋值就是String了,数字的话应该不用引号吧
2016-06-21 回复 有任何疑惑可以回复我~
arrayObject.sort(方法函数)

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

例如以下方法函数:

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

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

0 回复 有任何疑惑可以回复我~
#1

黑色丶毛衣 提问者

看来,您并没有看我贴的注释啊?另外,这个函数为什么要返回true,而不是b-a的值呢?
2016-05-28 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

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

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信