JSON 的问题
var obj = {
'51' : { 'name':'name1'},
'66' : { 'name':'name2'},
'58' : { 'name':'name3'}
};
$(function() {
s = '';
$.each(obj, function(k, v) {
s += ' '+k;
});
alert(s);
});
在 IE 和 Firefox 中为 51 66 58,但在 Opera 和 Chrome 中为 51 58 66 为什么Jquery.each()在opera、chrome中按键排序? 我可以做什么来保持原生秩序?
ps 如果数组键是字符串,则结果 51j 66j 58j 也许 Opera 和 chrome 会尝试在可能的情况下将键转换为整数
var obj = {
"51j" : { "name":"name1"},
"66j" : { "name":"name2"},
"58j" : { "name":"name3"}
};
var obj = {
'51' : { 'name':'name1'},
'66' : { 'name':'name2'},
'58' : { 'name':'name3'}
};
$(function() {
s = '';
$.each(obj, function(k, v) {
s += ' '+k;
});
alert(s);
});
In IE and Firefox it's 51 66 58, but in Opera and Chrome it's 51 58 66
Why Jquery.each() sort by key in opera, chrome?
What can i do to keep native order?
p.s if array keys is a string, result 51j 66j 58j
perhaps opera and chrome try to convert keys to integer where it's possible
var obj = {
"51j" : { "name":"name1"},
"66j" : { "name":"name2"},
"58j" : { "name":"name3"}
};
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
JavaScript 对象是无序的。当您循环遍历键时,无法保证键应该按哪个顺序出现,并且 JS 引擎可以自由地实现它们喜欢的任何存储和检索系统。
如果顺序很重要,请使用数组:
[]
它可以包含对象:
JavaScript objects are unordered. There is no guarantee about which order the keys should come out when you loop over them and JS engines are free to implement whatever storage and retrieval systems they like.
If order matters, use an array:
[]
This can contain objects: