Javascript - 对象,for 循环从 2 开始

标签 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') 更大的子对象中提取数据。

最佳答案

ECMAscript 中的对象键没有指定的顺序。如果您仍然对键名进行了索引,那么您确实应该使用 Javascript 数组

如果您需要一个普通的Object,您可能需要将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++) {
}
<小时/>

但是,您确实应该首先使用数组,这样您就可以跳过脏活。

关于Javascript - 对象,for 循环从 2 开始,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15806989/

相关文章:

javascript - 来自 HTML 列表的对象

python - 自动将对象从类转换为子类

javascript - 在javascript中从多维数组或对象中删除元素

JavaScript 对给定属性数组的对象属性重新排序

javascript - fancybox 将内容更改为模态窗口

javascript - 为什么 instanceof 在 JavaScript 中返回 false?

javascript - 如何在javascript中将浮点值转换为日期时间格式

python - 如何使用嵌套 for 循环打印乘法表

java - 如何创建循环

javascript - 如何在文件输入更改事件中使用循环