js 遍历 json数据的方法?

diyle 2014-08-26 03:54:45
var data = {"17":"abc","3":"abb","8":"aba"};
for(var i in data){
....
}

这段代码在chrome浏览器下访问顺序依次是3,8,17。如何按照原有的排序方式访问?
...全文
251 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
其实这样也可以,不过这样很奇怪

'use strict'

var values = { 17: 'express', 1: 'debug', 0: 'google' };
var array = Object.keys(values);
array.sort(function (x, y) { 
    return parseInt(x, 10) - parseInt(y,10);
});

array.forEach(function (val,i,src) { 
    console.log(val,values[val]);
});

BeautyMyth 2014-08-26
  • 打赏
  • 举报
回复
var data = {"17":"abc","3":"abb","8":"aba"};
var dataindex=["17","3","8"];
for(var i=0;i<dataindex.length;i++){
    console.log(data[dataindex[i]]);
}
如果你能知道json的够着的话,可以将key值放在数组里面,然后遍历数组即可
  • 打赏
  • 举报
回复
对象是无序集合,所以无法保证输出顺序
小白菜string 2014-08-26
  • 打赏
  • 举报
回复
for in 是无法保证顺序的,把var data = [{"17":"abc"},{"3":"abb"},{"8":"aba"}] 可以吗

87,904

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧