現在、json ドキュメント (マングースから返された) 内の配列をループし、以下のように特定の項目を探す実装があります。
だから何が起こっているのかid
というと、リクエストヘッダーで を渡して表現することです。必要なのはstory.users.id.name
、配列から関連付けられたものを取得することstory.users
です。次に、名前が 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
変数が未定義になることがあります。
したがって、以下のように 2 つの 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");
}
}
しかし、配列を2回ループするよりも、上記のより良い方法があるに違いありませんか?