Jquery中,如何固定一种遍历json的顺序?

我在Jquery中对json用$.each进行遍历,输出结果在firefox和chrome中的顺序是相反的。而ie和firefox相同。求别的遍历方法,不要在二者产生不同!
json 本身就是一种"无序"的数据类型,
如果非要有序 输出 ,你首先要把他所有属性变成一个有序的数组

这和各浏览器的Map键名的遍历方法相关,jquery只不过是包装了一下 for (key in obj)。
解决方法为将键名放入的数组,通过遍历数组的方式就不会有问题了。
var a = [];
$.each(obj, function(key, val) { a[a.length] = key;  });
a.sort();
$.each(a, function(i, key) {
  window.alert("key = " + obj[key]); // 访问JSON对象属性
});

太好了,其实上面的答案与你差不多,但胜在这句a[a.length] = key,实在太精彩了。感激不尽!

 

转自:http://zhidao.baidu.com/question/369077374.html

发布者

小懿

RingCentral敏捷教练 不懂技术的产品经理不是好教练!

发表评论

邮箱地址不会被公开。 必填项已用*标注