Jac*_*ack 4 javascript for-loop
获取具有4个属性的JavaScript对象:
function Object() {
this.prop1;
this.prop2;
this.prop3;
this.prop4;
}
var obj = new Object();
Run Code Online (Sandbox Code Playgroud)
我使用for(in)循环来检查每个属性,因为我不知道属性的数量或名称:
for(property in obj) {
var prop = obj[property];
}
Run Code Online (Sandbox Code Playgroud)
但是我想处理从最后一个开始的属性(本例中为prop4).我想我想要一个反向循环.
我怎样才能做到这一点?
谢谢,杰克
添加:我引用的对象是从JSON.parse返回的对象.这些属性似乎始终如一.没有keys()方法.
jfr*_*d00 13
A for (x in y)不会按任何特定顺序处理属性,因此您无法依赖任何所需的订单.
如果需要按特定顺序处理属性,则需要将所有属性都放入数组中,对数组进行适当排序,然后按所需顺序使用这些键.
使用ES5(或ES5填充程序),您可以将所有属性添加到数组中:
var keys = Object.keys(obj);
Run Code Online (Sandbox Code Playgroud)
然后,您可以按标准词法顺序对它们进行排序,或使用您自己的自定义函数进行排序:
keys.sort(fn);
Run Code Online (Sandbox Code Playgroud)
然后,您可以按照所需的顺序访问它们:
for (var i = 0; i < keys.length; i++) {
// process obj[keys[i]]
}
Run Code Online (Sandbox Code Playgroud)