首页 > 代码库 > JavaScript的排序问题
JavaScript的排序问题
根据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()函数。
本文出自 “你好我是森林” 博客,请务必保留此出处http://chensenlin.blog.51cto.com/10559465/1862152
JavaScript的排序问题
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。