javascript - 如何用js实现json数据key值的排序问题
伊谢尔伦
伊谢尔伦 2017-04-11 12:03:16
[JavaScript讨论组]

有一组json数据在进行for循环插入到dom时,

var tt = data.serach_house_price;//json数据
var html3 = '';
for(var i in tt) {
        html3 +='
  • '+tt[i]+'
  • '; }

    输出结果如图所示,最后一个key循环到第一个位置了,如何对它们按大小进行重新排序呢?

    伊谢尔伦
    伊谢尔伦

    小伙看你根骨奇佳,潜力无限,来学PHP伐。

    全部回复(4)
    天蓬老师
    var tt = {
    '0-40': '40万以下',
    '40-60': '40-60万',
    '60-80': '60-80万',
    '80-100': '80-100万',
    '100-150': '100-150万',
    '150-200': '150-200万',
    '200-300': '200-300万',
    '300-400': '300-400万',
    '400': '400万以上',
    }
    var sortKeys = Object.keys(tt).sort(function(i1,i2){
      return i2.split('-')[0] - i1.split('-')[0] 
    });
    var html3 = '';
    for(var i=0, len=sortKeys.length; i<len; i++) {
            html3 +='<li data-sorce = '+sortKeys[i]+'>'+tt[sortKeys[i]]+'</li>\n';
    }
    console.log(html3);

    看看这样满足吗?

    阿神

    可以参考这篇文章:http://w3help.org/zh-cn/cause...。
    实际中遍历得顺序在各个浏览器无法保证一致,因此不建议用for in去遍历。不过可以考虑把for in的结果保存到数组,再把数组排个序,然后遍历这个数组去输出

    PHP中文网
    var html3 = [];
    for(var i in tt) {
         html3.push('<li data-sorce = ',i,'>',tt[i],'</li>');
    }
    console.log(htm3.reverse().join(""));
    PHPz

    建议从存储数据格式上去修改。

    修改成以下形式:

    [
        {name:'0-40', value:'40万以下'},
        {name:'40-60', value:'40-60万'},
        {name:'60-80', value:'60-80万'},
        ...
    ]
    热门教程
    更多>
    最新下载
    更多>
    网站特效
    网站源码
    网站素材
    前端模板
    关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
    php中文网:公益在线php培训,帮助PHP学习者快速成长!
    关注服务号 技术交流群
    PHP中文网订阅号
    每天精选资源文章推送
    PHP中文网APP
    随时随地碎片化学习

    Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号