Javascript 如何遍历对象中的编号属性?

Javascript 如何遍历对象中的编号属性?,javascript,node.js,express,Javascript,Node.js,Express,我有一个拥有700多个属性的大型对象,所有属性都已编号。如何遍历每个带编号的属性 { '0': { emails: { categorized: [Object], all: [Object], primary: 'support@wish.com' }, id: '290cb70ea0f', updated: '2011-09-16T05:55:12.136Z' }, '1': { emails:

我有一个拥有700多个属性的大型对象,所有属性都已编号。如何遍历每个带编号的属性

{ '0': 
   { emails: 
      { categorized: [Object],
        all: [Object],
        primary: 'support@wish.com' },
     id: '290cb70ea0f',
     updated: '2011-09-16T05:55:12.136Z' },
  '1': 
   { emails: 
      { categorized: [Object],
        all: [Object],
        primary: 'VJONO@csnfo.com' },
     id: '753ac508e1a00e',
     updated: '2012-07-12T22:23:11.196Z' },
  '2': 
   { title: 'Bryan Weston',
     phone_numbers: { categorized: [Object], all: [Object], primary: '' },
     id: 'b4c0268d92825e',
     updated: '2010-10-13T08:00:32.834Z' },
    // It goes on....
使用下划线

_.each(yourObject, function (item, index) {
   console.log(item.emails);
   console.log(item.title);
   // etc...
});
使用下划线

_.each(yourObject, function (item, index) {
   console.log(item.emails);
   console.log(item.title);
   // etc...
});

在纯javascript中,它会像这样运行

var data = { /*stuff*/ };
var item;
for (var prop in data) {
   //hasOwn is probably not needed
   if( /*data.hasOwnProperty(prop) &&*/ !isNaN(prop) ) {  //only do stuff if the property is a number
       item = data[prop];
       //work
   }
}

你可以用下划线写它,就像在马克的答案中一样,但是如果(!isNaN(prop))或
,用类似的
在纯javascript中检查它,它会是这样的

var data = { /*stuff*/ };
var item;
for (var prop in data) {
   //hasOwn is probably not needed
   if( /*data.hasOwnProperty(prop) &&*/ !isNaN(prop) ) {  //only do stuff if the property is a number
       item = data[prop];
       //work
   }
}
你可以用下划线写在马克的答案中,但如果(!isNaN(prop))
,则用类似的
如果(!isNaN(prop))
。isNaN
检查尝试以下方法:

var objectKeys = Object.keys(yourObject).map(Number);
objectKeys.sort();
for(var i=0;i < objectKeys.length; i++) {
    key = objectKeys[i];
    element = yourObject[key];
    //do magic here
}
var objectKeys=Object.keys(你的对象).map(数字);
objectKeys.sort();
对于(var i=0;i
如果您不关心处理顺序,可以使用
for(key in youObject)

尝试以下操作:

var objectKeys = Object.keys(yourObject).map(Number);
objectKeys.sort();
for(var i=0;i < objectKeys.length; i++) {
    key = objectKeys[i];
    element = yourObject[key];
    //do magic here
}
var objectKeys=Object.keys(你的对象).map(数字);
objectKeys.sort();
对于(var i=0;i

如果您不关心处理顺序,您可以只使用
for(key in youObject)

使用对象数组,带索引如何?仅使用编号的属性?或者对象上是否有其他属性只有编号的属性。我应该把它们放入一个数组中,然后遍历它们吗?这是通过AJAX POST请求接收的,所以它没有提交数组,而是提交了一个对象……是的,您应该发送一个集合。对象属性不能保证以特定的顺序出现。使用对象数组和索引如何?仅使用编号的属性?或者对象上是否有其他属性只有编号的属性。我应该把它们放入一个数组中,然后遍历它们吗?这是通过AJAX POST请求接收的,所以它没有提交数组,而是提交了一个对象……是的,您应该发送一个集合。对象属性不保证按特定顺序显示。