Jquery操作数组元素(三)字符串数组与数值数组的排序

来源:互联网 发布:如何用mac剪辑音频 编辑:程序博客网 时间:2024/06/04 18:16

问题描述:

      有两个数组,一个字符串数组,一个数值数组,分别排序。

解决方案:

<html xmlns="http://www.w3.org/1999/xhtml"><head runat="server">    <title></title>    <script src="Scripts/jquery-1.4.1.min.js" type="text/javascript"></script>    <script type="text/javascript">        $(function () {            var members1 = ["John", "Steve", "Ben", "Damon", "Lan"];            $("#p1").html(members1.join("<br/>"));            members1 = members1.sort();            $("#p2").html(members1.join("<br/>"));            var number1 = [33, 45, 22, 54, 11, 7];            $("#p3").html(number1.join("<br/>"));            number1 = number1.sort();            $("#p4").html(number1.join("<br/>"));            var number2 = [33, 45, 22, 54, 11, 7];            number2 = number2.sort(function (a, b) {                return b - a;            });            $("#p5").html(number2.join("<br/>"));        });    </script></head><body>    <form id="form1" runat="server">    <div>     <h3>显示排序前字符串数组元素</h3>     <p id="p1"></p>     <h3>显示排序后的字符串元素</h3>     <p id="p2"></p>      <h3>显示排序前的数字数组元素</h3>     <p id="p3"></p>      <h3>显示排序后的数字数组元素(一)</h3>     <p id="p4"></p>      <h3>显示排序后的数字数组元素(二)</h3>     <p id="p5"></p>    </div>    </form></body></html>


效果图:

方法解释:

  sort()方法是基于ASCII值进行排序,所以大小写字符不能混淆排序,也不可以对数值进行排序,因为它任务10小于3 (因为1的ASCII值小于3的ASCII值),因此,为了正确对数值进行排序,必须为sort()方法定义一个比较函数。如果定义了比较函数,将把数组中的一对值发送到比较函数进行比较,重复这一操作,直到把数组的所有元素处理完毕。

当返回函数返回值小于0,表示第二个值大于第一个,因次第二个值排序靠后。

当返回函数返回值大于0,表示第二个值小于第一个,因此第一个值排序靠后。

当返回寒数返回值等于0,意味着不必改变排序。

注:对数值进行降序排序(从大到小),只需把比较函数的返回值从a-b修改为b-a;