【发布时间】:2013-08-28 01:37:33
【问题描述】:
我目前有一个实现,它遍历 json 文档中的数组(从 mongoose 返回)并查找以下特定项目
所以发生的事情是我在请求标头中传递了一个 id 来表达,我需要做的是让它从 story.users 数组中获取关联的 story.users.id.name 并返回,然后一旦它有名称 send 对数组中的所有其他项目执行某些操作。
我确实尝试过如下操作:
for (var i = 0; i < story.users.length; i++) {
if (story.users[i].id._id == req.headers.id) {
var name = story.users[i].id.name
} else {
push.apns(story.users[i].id._id, name + " started a new story");
}
}
它将循环获取名称,然后对数组中的所有其他用户执行某些操作,但有时else 参数首先触发,因此name 变量未定义。
所以我使用了两个 if 循环,如下所示:
for (var i = 0; i < story.users.length; i++) {
if (story.users[i].id._id == req.headers.id) {
var name = story.users[i].id.name
}
};
for (var i = 0; i < story.users.length; i++) {
if (story.users[i].id._id == req.headers.id) {
} else {
push.apns(story.users[i].id._id, name + " started a new story");
}
}
但是必须有更好的方法而不是循环遍历数组两次?
【问题讨论】:
标签: javascript arrays node.js mongoose