风到这里就是粘
2017-07-26 17:35
sort()接收的比较函数
function sortNum(a,b) {
if(a>b){
return 1;
}
else if(a<b){
return -1;
}
else{
return 0;
}
}
为什么不行?js高程是看的
你把数组中的双引号都去掉就可以了,如果不去双引号比较的是ASC||码的大小
a,b比较返回的不是boolean值?
你数组中的不是数,是字符串。你把sortNum函数换成下面这个就可以了。
function sortNum(a,b){
return a - b;//从小到大排列,如果想从大到小排列换成b - a就可以了。
}
如果你不想改这个函数,那就需要用另一种办法先把myarr这个数组中的字符串转换成数。
例如可以这样
<!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 a - b;
}*/
function sortNum(a,b) {
if(a>b){
return 1;
}
else if(a<b){
return -1;
}
else{
return 0;
}
}
var myarr = new Array("80","16","50","6","100","1");
for (var i = 0,len = myarr.length; i < len; i++) {
myarr[i] = Number(myarr[i]);
}
document.write(myarr.sort(sortNum));
</script>
</head>
<body>
</body>
</html>
a和b比较的,return只能返回a或者b
return a
return b
JavaScript进阶篇
468060 学习 · 21891 问题
相似问题