json sort排序

Array.sort()方法是用来对数组项进行排序的 ,默认情况下是进行升序排列。sort() 方法可以接受一个 方法为参数。

sort()排序时每次比较两个数组项都回执行这个参数,并把两个比较的数组项作为参数传递给这个函数。当函数返回值为1的时候就交换两个数组项的顺序,否则就不交换。

  var p = [5, 2, 3, 1, 7, 5, 6, 9, 6, 0];

            function down(a, b) {

                return   (a < b) ? 1 : -1

            }

            p.sort(down)

            alert(p)

 json排序

    var p = [

                {name:"kitty", age:12},

                {name:"sonny", age:9},

                {name:"jake", age:13},

                {name:"fun", age:24}

            ]

            function down(x, y) {

                return (x.age < y.age) ? 1 : -1



            }

            p.sort(down)

            var $text = "<div>"

            $.each(p, function (key, value) {

                var $div = "<div>"

                $.each(value, function (key, value) {

                    $div += "<span>" + key + ":</span>" + "<span>" + value + "</span>" + "         "

                })

                $div += "</div>"

                $text = $text + $div

            })

            $text += "</div>"







            $(".text").html($text)

 写成类

    <script type="text/javascript">

        $(document).ready(function () {

            var p = [

                {name:"kitty", age:12, price:190},

                {name:"sonny", age:9, price:390},

                {name:"jake", age:13, price:42},

                {name:"fun", age:24, price:210}

            ]



            var tablesort = {

                init:function (arry, parm, sortby) {

                    this.obj = arry

                    this.parm = parm

                    this.b = sortby

                },



                sot:function () {

                    var $this = this

                    var down = function (x, y) {

                        return (eval("x." + $this.parm) > eval("y." + $this.parm)) ? -1 : 1

                    }//通过eval对json对象的键值传参

                    var up = function (x, y) {

                        return (eval("x." + $this.parm) < eval("y." + $this.parm)) ? -1 : 1

                    }

                    if (this.b == "down") {

                        this.obj.sort(down)

                    }

                    else {

                        this.obj.sort(up)

                    }



                },//排序



                prin:function () {

                    var $text = "<div>"

                    $.each(this.obj, function (key, value) {

                        var $div = "<div>"

                        $.each(value, function (key, value) {

                            $div += "<span>" + key + ":</span>" + "<span>" + value + "</span>" + "         "

                        })

                        $div += "</div>"

                        $text = $text + $div

                    })

                    $text += "</div>"

                    $("html body").html($text)

                }//遍历添加dom元素,添加dom

            }



            function _temp() {

                this.init.apply(this, arguments)

            }



            _temp.prototype = tablesort;

            var sort1 = new _temp(p, "price", "down") //建立对象

            sort1.init(p, "age", "up");//初始化参数更改

            sort1.sot()

            sort1.prin()



        })





    </script>

 

你可能感兴趣的:(json)