问题描述

我需要按键排序JavaScript对象。

因此如下:

{ 'b' : 'asdsad', 'c' : 'masdas', 'a' : 'dsfdsfsdf' }

会成为:

{ 'a' : 'dsfdsfsdf', 'b' : 'asdsad', 'c' : 'masdas' }

最佳解决方案

方法一 如果要迭代对象的属性,可以对键进行排序,然后检索关联的值:

var myObj = {
'b': 'asdsadfd',
'c': 'masdasaf',
'a': 'dsfdsfsdf'
},
keys = [],
k, i, len;
var newObj={};

for (k in myObj) {
if (myObj.hasOwnProperty(k)) {
keys.push(k);
}
}

keys.sort();

len = keys.length;

for (i = 0; i < len; i++) {
k = keys[i];
newObj[k]=myObj[k];
}

console.log( myObj );console.log(newObj);

 


方法二  使用Object.keys的替代实现:

var myObj = {
'b': 'asdsadfd',
'c': 'masdasaf',
'a': 'dsfdsfsdf'
},
keys = Object.keys(myObj),
i, len = keys.length; keys.sort(); for (i = 0; i < len; i++) {
k = keys[i];
newObj[k]=myObj[k];
}
console.log(keys);
console.log( myObj );
console.log(newObj);

最新文章

  1. c#导出bugfree3.0的数据到禅道
  2. SparkStreaming运行出现 java.lang.NoClassDefFoundError: org/apache/htrace/Trace 错误
  3. Android:Layout_weight的深刻理解
  4. poj 1259 Agri-Net(最小生成树)
  5. html元素
  6. php 时间戳 总结 今日,昨日,上周,本周,最近三个月,上季,本季,去年,最近七天,今年,最近三十天
  7. Covariant Returen Types(协变返回类型)
  8. [计算机基础]URI与URL
  9. LoadRunner【第一篇】下载、安装、破解
  10. 我的 FPGA 学习历程(03)—— 使用 Quaruts 自带仿真工具
  11. 源码编译vim
  12. h5新增标签及css3新增属性
  13. cpu概念
  14. 向集合中添加Person类型并对其排序
  15. 导出putty配置
  16. webpack基础概念
  17. 《Python》re模块补充、异常处理
  18. python 游戏(船只寻宝)
  19. 《Windows核心编程》第2章——字符和字符处理
  20. ibatis 常用标签

热门文章

  1. bzoj2200拓扑排序+最短路+联通块
  2. poj3162 树形dp|树的直径 + 双单调队列|线段树,好题啊
  3. Python中对文件和目录的操作
  4. python unittest框架装饰器
  5. CAS统一登录认证好文汇集贴
  6. 全球免费公共 DNS 解析服务器 IP 地址列表推荐 (解决无法上网/加速/防劫持)
  7. adb devices unauthorized解决办法
  8. Adjoint operators $T_K$ and $T_{K^{*}}$ in BEM
  9. JS如何监听动画结束
  10. 集群LVS