黑色丶毛衣
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>
注释的地方还是不明白~
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);
<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语言的思想这么理解的。
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()));//这里的函数调用可以传入实参么?
arrayObject.sort(方法函数)
sortNum(a,b)这个就是方法函数。
例如以下方法函数:
function sortNum(a,b) { return b-a; }
这个方法函数就是返回b是否大于a,如果b大于a,方法函数返回true,其目的是执行b>a的排序
JavaScript进阶篇
468061 学习 · 21891 问题
相似问题