jq按json数据某一字段进行排序


<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8"> 
    <title>导航条吸附效果,并随着页面滚动选中相应导航内容</title>
    <link rel="stylesheet" type="text/css" href="css/reset.css">
    <link rel="stylesheet" type="text/css" href="css/common.css">
    <script type="text/javascript" src="js/jquery.js"></script>
    <style type="text/css">
    .content-box{
        border: 1px solid red;
        padding: 20px;
        margin: 20px;
    }
    .content-box h3{
        font-size: 20px;
        font-weight: normal;
        margin-bottom: 20px;
    }
    #normal{
        line-height: 40px;
        font-size: 14px;
        color: #000000;
    }
    #sort{
        line-height: 40px;
        font-size: 18px;
        color: red;
    }

    .content-box li{
        border-bottom: 1px solid #000000;
        padding: 10px 20px;
    }
    .content-box li p{
        line-height: 20px;
    }
    #normalObj{
        margin-bottom: 30px;
    }
    </style>
</head>
<body>
    <div class="content-box">
        <h3>普通数组</h3>
        <div id="normal"></div>
        <div id="sort"></div>
    </div>

    <div class="content-box">
        <h3>数组里面包对象</h3>
        <div id="normalObj">
            <h4>排序之前:</h4>
        </div>
        <div id="sortObj">
            <h4>按distance排序之后:</h4>
        </div>
    </div>

    <script type="text/javascript">
    //普通数组排序
    var normalArray = [4,7,3,5,2,6,9];
    $("#normal").text("排序之前:" + normalArray);
    normalArray.sort(function(a,b){
        return a - b;
    });
    $("#sort").text("排序之后:" + normalArray);

    //数组里面包对象,根据对象某个字段对数组进行排序
    var objArray = [
        {
            address:"十里长街延长线",
            distance:"1506",
            pointlat:25.006991,
            pointlng:102.724982,
            title:"海贝中英文小学"
        },
        {
            address:"陈家段附近",
            distance:"628",
            pointlat:24.99059,
            pointlng:102.723799,
            title:"陈家小学"
        },
        {
            address:"云南省昆明市西山区前福路",
            distance:"1117",
            pointlat:24.996976,
            pointlng:102.707486,
            title:"云南衡水实验中学西山校区"
        }
    ];
    
    var html = "<ul>";
    for (var i = 0; i < objArray.length; i++) {
        html += "<li>";
        html += "<p>address:" + objArray[i].address + "</p>";
        html += "<p>distance:" + objArray[i].distance + "</p>";
        html += "<p>pointlat:" + objArray[i].pointlat + "</p>";
        html += "<p>pointlng:" + objArray[i].pointlng + "</p>";
        html += "<p>title:" + objArray[i].title + "</p>";
        html += "</li>";
    }
    html += "</ul>";
    $("#normalObj").append(html);
    //根据对象的distance字段进行排序
    objArray.sort(function(a,b){
        return a.distance - b.distance;
    });
    var sorthtml = "<ul>";
    for (var i = 0; i < objArray.length; i++) {
        sorthtml += "<li>";
        sorthtml += "<p>address:" + objArray[i].address + "</p>";
        sorthtml += "<p>distance:" + objArray[i].distance + "</p>";
        sorthtml += "<p>pointlat:" + objArray[i].pointlat + "</p>";
        sorthtml += "<p>pointlng:" + objArray[i].pointlng + "</p>";
        sorthtml += "<p>title:" + objArray[i].title + "</p>";
        sorthtml += "</li>";
    }
    sorthtml += "</ul>";
    $("#sortObj").append(sorthtml);
    </script>
</body>
</html>




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值