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 sort的更多相关文章

  1. json数据处理技巧(字段带空格、增加字段)

    1.json数据的正常取值:json[i].fieldName 2.json数据的字段带空格:eval('json[' + i + ']["' + field + '"]') 3. ...

  2. Json 数组排序

    /*********************************************Json 数组排序 ******************************************** ...

  3. Java用Gson按照键值key排序json所有节点

    <dependency> <groupId>commons-io</groupId> <artifactId>commons-io</artifa ...

  4. mongodb-导出数据到csv文件或json文件

    在mongodb的bin目录下, 有一个mongoexport, 可用于数据的导出 [wenbronk@localhost bin]$ ./mongoexport --help Usage: mong ...

  5. JSON合并,并按时间排序

    mergeJson: function (json1, json2) { var json = Object.assign([], json1, json2); return json.sort(fu ...

  6. 对json对象进行截取并按照某关键字进行排序

    json对象截取后三个数据,并按照时间的顺序进行倒叙排序. var json = [{"sent_time":"08:29:09","dist&quo ...

  7. 推荐三款好用的JSON格式化工具——JSON-handle & HiJson & JSTool

    工具一:JSON-handle JSON-Handle是一款谷歌浏览器插件. 1.访问http://jsonhandle.sinaapp.com/下载 2.打开Chrome浏览器的扩展程序(访问chr ...

  8. ElasticSearch入门知识扫盲

    ElasticSearch 入门介绍 tags: 第三方 lucene [toc] 1. what Elastic Search(ES)是什么 全文检索和lucene 全文检索 优点:高效,准确,分词 ...

  9. JavaScript-json数组排序

    排序是开发中不可避免的,最近遇到一个需求需要将JSON数组排序,需求比较简单,实现起来也没什么难度,简单记录下过程: 首先我们需要明白的JavaScript本身的排序是可以传入函数比较的,数组排序如下 ...

随机推荐

  1. 如何发布一个包到npm && 如何使用自己发布的npm包 && 如何更新发布到npm的package && 如何更新当前项目的包?

    如何发布一个包到npm First 在https://www.npmjs.com注册一个账号. Second 编辑好项目,文件大致如下: 其中,gitignore可以如下: .DS_Store nod ...

  2. STL:map用法总结

    一:介绍 map是STL的关联式容器,以key-value的形式存储,以红黑树(平衡二叉查找树)作为底层数据结构,对数据有自动排序的功能.命名空间为std,所属头文件<map> 二:常用操 ...

  3. angular 兼容IE浏览器

    安装classlist.babel-polyfill: npm install --save classlist.js npm install --save babel-polyfill 修改 src ...

  4. Guid和Oracle中16进制字符的转换

    我们知道在Oracle中存的guid是16进制字符串,而在我们的C#代码中存的是guid对象,这样我会就要进行转换, 下面给出了两者进行转换的方法: public class Guid2RawProc ...

  5. jquery中Ajax提交配合PHP使用的注意事项-编码

    问题:Ajax提交的数据的编码为utf-8,并且返回的数据也要求是utf-8的,如果说你的系统不是utf-8编码的话,那会让你痛不欲生! 解决方法:(比较笨拙的方法,但是很好用) 对于接收的数据,使用 ...

  6. CSS3动画属性animation的基本用法

    CSS3新增了一个令人心动的属性:animation,尽管利用animation做出来的动画没有flash或者javascript做出的动画流畅绚丽,但是从代码量和浏览器性能上有着明显的优点. ani ...

  7. double类型计算

    下面两个例子体现两个运算规则 一.四舍五入 //四舍五入 double doublenum = Math.Round(12.5, MidpointRounding.AwayFromZero); //两 ...

  8. ubuntu下安装MySQL8.0

    为了一劳永逸不每次都到处找资料,花了一下午时间做了这些.其中大部分是根据官方手册来的,后面部分谢谢大佬的帮助,超开心. 一.首先,将MySQL APT存储库添加到系统的软件存储库列表中 1.转到htt ...

  9. IDEA安装及破解永久版教程————鹏鹏

    ---恢复内容开始--- 首先我们先来介绍下什么是IDEA? IDEA 全称 IntelliJ IDEA,是java编程语言开发的集成环境.IntelliJ在业界被公认为最好的java开发工具之一,尤 ...

  10. Protocol Buffers教程

    今天想比较下pb和fastjson两个序列化后的大小.再看了一下pb序列化 pb官网:https://developers.google.com/protocol-buffers/ pb是啥 What ...