欢迎来到元素模板ys720.com,本站提供专业的织梦模板PBOOTCMS模板网站模板网站修改/网站仿站
当前位置:主页 > 程序教程 > 其他教程 >
其他教程

[JQ教程]JQuery 对象数组Array根据字段排序

(元素模板) / 2017-04-19 10:59
如何让对象数组 按照某个字段来排序

元素模板站长为您解答:
 
<html>
  <head>
    <title>jQuery数组和字符串--对象数组排序</title>
    <script src="http://apps.bdimg.com/libs/jquery/2.1.1/jquery.min.js"></script>
    <script type="text/javascript">
    <!--
    $(
        function()
        {
            var students =[
                {'sid':'ST001','sname':'张三','sage':18},
                {'sid':'ST004','sname':'赵六','sage':23},
                {'sid':'ST002','sname':'李四','sage':42},
                {'sid':'ST003','sname':'王五','sage':35}
            ];
            //表格显示
            $.each(students,
                function(index, value)
                {
                    $('#ia').append('<tr><td>' + value.sid +
                        '</td><td>' + value.sname +
                        '</td><td>' + value.sage + '</td></tr>');
                }
            );
            //按照SID排序
            var sidOrder = students.sort(
                function(a, b)
                {
                    if(a.sid < b.sid) return -1;
                    if(a.sid > b.sid) return 1;
                    return 0;
                }
            );
            $.each(sidOrder,
                function(index, value)
                {
                    $('#ib').append('<tr><td>' + value.sid +
                        '</td><td>' + value.sname +
                        '</td><td>' + value.sage + '</td></tr>')
                }
            );
            //按照SAGE排序
            var sageOrder = students.sort(
                function(a, b)
                {
                    return (a.sage - b.sage);
                }
            );
            $.each(sageOrder,
                function(index, value)
                {
                    $('#ic').append('<tr><td>' + value.sid +
                        '</td><td>' + value.sname +
                        '</td><td>' + value.sage + '</td></tr>')
                }
            );
        }
    );
    //-->
    </script>
  </head>
  <body>
    <h5>未排序对象数组:</h5>
    <table id='ia' border="1"></table>
    <h5>按照SID排序对象数组:</h5>
    <table id='ib' border="1"></table>
    <h5>按照SAGE排序对象数组:</h5>
    <table id='ic' border="1"></table>
  </body>
</html>

上面是完整代码

我们使用sort()方法:需要添加比较函数,反复从数组中获取一对值,在比较的基础上返回<0、=0和>0的值。

其实和排序字符串、数值没什么区别,比较对象是按照对象中的某个属性比较,所以,我们只要取出对象中的某个属性比较即可。

Copyright @ 2013-2021 元素模板 www.ys720.com All Rights Reserved. 版权所有 元素模板 www.ys720.com