.each循环遍历对象时出错
.each loops through object out of order
我创建了一个试图循环遍历的对象,但.each()函数试图首先对对象进行排序,然后循环遍历,结果不理想。顺便说一句,我使用的是Chrome,我听说对象循环可能相当依赖于浏览器。
对象:
var myObject = {"000": "12:00", "100": "1:00", "200": "2:00" .. and so on }
我用的每个函数循环遍历对象
$.each(myObject, function (key, value) {
// display value
} // outputs 1:00 2:00 12:00
我希望它的输出是12:00 1:00 2:00,这是我为对象提供的顺序。我在更改对象关键点方面没有太大的余地,所以如果可以的话,我想保留这些关键点。
以下是JSFiddle:http://jsfiddle.net/hyc8U/
谢谢!
PS。我不确定.each()的这种行为在技术上是"有序"还是"无序"
如果需要特定的顺序,可以使用数组,或者获取对象的键并通过用户定义的函数对其进行排序。
对象键在Javascript中是无序的。您需要将您的对象转换为一个数组,如下所示:
var myList = [{key: "000": val: "12:00"},
{key: "100": val: "1:00"},
{key: "200": val: "2:00"},
// ...
];
然后可以对数组(myList.sort(function(o) {return o.key;});
)进行排序,并对已排序的数组调用.each
。
看起来插入顺序不是任意的,还是只是意外?否则,您可以只获取密钥并对其进行排序,然后按排序后的密钥数组顺序访问对象:
var myObject = {"000": "12:00", "100": "1:00", "200": "2:00"};
$.each(Object.keys(myObject).sort(), function(i, v){
$("div").append(myObject[v] + "<br>");
});
http://jsfiddle.net/hyc8U/2/
相关文章:
- 解析JSON并从中删除对象会出错
- 将对象的列表c#传递给javascript:undefined变量时出错
- 通过GWT JSNI传递Java对象时出错
- CakePHP错误:在非对象上调用成员函数get(),使用cakejavascript助手时出错
- 尝试编写承诺时出错:承诺解析器对象不是函数
- '对象不是函数'尝试将页面对象与Protractor一起使用时出错
- JSON.parse在循环对象上未出错
- 谷歌应用程序脚本:;范围不是函数,它是对象;尝试在单元格中放置注释时出错
- 在ember.js中保存对象时出错:'对象X没有方法'保存''
- 使用JQuery和JSON将对象发送到JAX-RS时出错
- 在Javascript中将未定义转换为对象时出错
- 在 Javascript 中使用警报时出错(对象的属性“alert”不是函数)
- 更新 parse.com 分析对象时出错
- 使用对象构造函数管理 cssClasses 时出错
- 在 AngularJS 中将字符串转换为对象时出错
- 从对象引用请求动画帧时出错
- 在 Razor View 中设置 JavaScript 对象时出错
- jQuery+Edge Animate:仅当从单击事件调用时才出错:对象 [对象对象] 没有方法“基础”
- 使用Javascript/KendoUI自动完成呈现数据时出错-对象#<对象>没有方法'切片'
- 什么会导致IE出错对象不支持属性或方法'removeChild'