如何迭代对象中的编号属性?
我有一个超过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....
在纯粹的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 } }
用下划线你可以把它写在Mark的答案中,但是用类似的if(!isNaN(prop))
或_.isNaN
检查
使用下划线。
_.each(yourObject, function (item, index) { console.log(item.emails); console.log(item.title); // etc... });
尝试这个:
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 }
如果你不关心处理的顺序,你可以使用for(key in youObject)
- 如何在express.js中使用服务器发送的事件
- 可以快速改变传入的请求,并改变后redirect到一个不同的方法?
- Node + Express + Passport + Mongoose:req.user未定义
- 从单独的path文件中访问快速“应用程序”对象的最佳方式是什么?
- Mongoose子文档插入到另一个集合中,同时在父模式中保持关系
- ExpressJS和MongooseJS:我可以查询子文档中的数组值吗?
- 如何在Node.js + Express + Mongoose + Jade中处理表单validation,特别是嵌套模型
- 多个Express路由器
- 如何使用knex / Bookshelfselect数据库expression式作为值