javascript的数组排序

js中数组有sort()方法可以排序。
比如 var citys=["shanghai","guangzhou","beijing"];
citys.sort();
alert(citys);//
但是如果排序数字数组时就会有问题了。
所以如下的解决方案。

将数组中的元素排序,只需用到sort()方法。sort()方法是在原数组的基础上排序的,会影响原数组中的数据,其语法代码如下所示。
sort()
sort(order)    //排序数字时,必须调用此方法
其中order参数是一个可选参数,用来指定使用什么方法来对数组中元素进行排序。如果省略order参数,将按字符编码的顺序排序。如果想要将数组中的元素按其它方法排序,就必须要指定order参数。order参数必须是一个函数,该函数应该有两个参数(假设为x,y)。在使用sort()排序时,每次比较两个元素时都会执行比较函数,并将两个元素作为参数传递给比较函数。比较函数有以下两种返回值。
   1、如果返回值大于0,则交换两个元素的位置
   2、如果返回值小于或等于0,则不进行操作。

下面是一个排序的例子。
<html>
<head>
<title>数组对象的sort()方法</title>
<script language="javascript" type="text/javascript">
   <!--   
    var arr = [39,11,3,9,1,77];
    document.write("原数组元素为:" + arr.toString() + "<br>");
    arr.sort();
    document.write("按字符编码排序:" + arr.toString() + "<br>");
   
    //正序排序
    function ascOrder(x,y)
    {
     if (x>y)
     {
      return 1;
     }
     else
     {
      return -1;
     }
    }
    //倒序排序
    function descOrder(x,y)
    {
     if (x>y)
     {
      return -1;
     }
     else
     {
      return 1;
     }
    }
    arr.sort(ascOrder);
    document.write("按数字正序排序:" + arr.toString() + "<br>");
    arr.sort(descOrder);
    document.write("按数字倒序排序:" + arr.toString() + "<br>");
   -->
</script>
</head>
<body>
</body>
</html>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值