我目前有一个实现,它遍历 json 文档中的数组(从 mongoose 返回)并查找特定项目,如下所示
所以发生的事情是我id
在请求标头中传递一个来表达,我需要做的是让它story.users.id.name
从story.users
数组中获取关联的返回,然后一旦它有名称发送,对所有其他项目做一些事情大批。
我确实尝试这样做如下:
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");
}
}
但是必须有更好的方法而不是循环两次数组?