根据javascript的手册,将sort()方法进行运算,结果
<script> var arr = [2,3,56,12,546,77,98]; alert(arr.sort()); </script>
l根据javascript的手册,将sort()方法进行运算,结果如下:
可以看到这并不是我们需要的排序,于是根据手册的提示:
如果为 sortfunction 参数提供了一个函数,那么该函数必须返回下列值之一:
- 负值,如果所传递的第一个参数比第二个参数小。
- 零,如果两个参数相等。
- 正值,如果第一个参数比第二个参数大。
于是我封装一个函数demosort()
<script> var arr = [2,3,56,12,546,77,98]; arr.sort(function demosort(x, y){ if (x< y) { return -1; //小于,返回-1 } else if (x > y) { return 1; //大于返回1 } else { //其他,返回 0 return 0; } }); alert(arr); </script>
这样的话,再次通过sort()函数即可实现正确的排序。
结果如下:
这样就实现了真正意义上的排序。至于逆序可以将返回值相反,或者直接使用 reverse()函数。
时间: 2024-10-10 07:51:36