Javascript - Object,for循环从2开始

时间:2013-04-04 09:12:02

标签: javascript object for-loop

我的对象看起来像这样。

foo = {
    0 : {
        'bar' : 'baz',
        'qux' : 'quux',
        'this' : { 'hello' : 'yes' } // this is the object I want to extract
    }
    1 : {
        'bar' : 'baz',
        'qux' : 'quux',
        'this' : { 'hello' : 'yes' } // extract
    }
    2 : {
        'bar' : 'baz',
        'qux' : 'quux',
        'this' : { 'hello' : 'yes' }, // extract
        'that' : { 'hello' : 'no' } // extract
    }
}

使用这样的for循环,我可以遍历每个对象:

for(var i in foo){
  ...
}

问题是我只想从每个对象的('this')中提取第三个和更多子对象的数据。

1 个答案:

答案 0 :(得分:2)

ECMAscript中没有对象键的指定顺序。如果你已经为索引编制了索引,你真的应该使用 Javascript数组

如果您需要一个简单的对象,您可能希望在Object.keys()Array.prototype.forEach旁边使用.sort(),例如

Object.keys( foo ).sort().forEach(function( i ) {
});

如果您不能依赖ES5,那么您别无选择,只能手动完成工作。

var keys = [ ];

for(var key in foo) {
    if( foo.hasOwnProperty( key ) ) {
        keys.push( key );
    }
}

keys.sort();

for(var i = 0, len = keys.length; i < len; i++) {
}

但是,你真的应该首先使用数组,这样你就可以跳过肮脏的工作。