Parcourir la source

Unnested forEach

hakumizuki il y a 4 ans
Parent
commit
b696991976
1 fichiers modifiés avec 9 ajouts et 6 suppressions
  1. 9 6
      src/server/routes/apiv3/pages.js

+ 9 - 6
src/server/routes/apiv3/pages.js

@@ -312,14 +312,17 @@ module.exports = (crowi) => {
       const PageTagRelation = mongoose.model('PageTagRelation');
       const PageTagRelation = mongoose.model('PageTagRelation');
       const ids = result.pages.map((page) => { return page._id });
       const ids = result.pages.map((page) => { return page._id });
       const relations = await PageTagRelation.find({ relatedPage: { $in: ids } }).populate('relatedTag');
       const relations = await PageTagRelation.find({ relatedPage: { $in: ids } }).populate('relatedTag');
+      const relationsMap = new Map();
       result.pages.forEach((page) => {
       result.pages.forEach((page) => {
-        page.tags = [];
-        relations.forEach((relation) => {
-          if (relation.relatedPage.toString() === page._id.toString()) {
-            page.tags.push(relation.relatedTag);
-          }
-        });
+        relationsMap.set(page._id.toString(), []);
+      });
+      relations.forEach((relation) => {
+        relationsMap.get(relation.relatedPage.toString()).push(relation.relatedTag);
       });
       });
+      result.pages.forEach((page) => {
+        page.tags = relationsMap.get(page._id.toString());
+      });
+
       return res.apiv3(result);
       return res.apiv3(result);
     }
     }
     catch (err) {
     catch (err) {