【问题标题】:map and for...of give different resultsmap 和 for...of 给出不同的结果
【发布时间】:2020-01-22 09:59:00
【问题描述】:

我正在尝试遍历项目中的数组值。

如果我遍历 Array.map() 它会给我一个空数组,但是如果我使用 for...of 循环进行迭代,我会得到正确的结果(带有值的新数组)。

const items = await Item.find({ itemId: items.map(item => item) });

for (item of items) {
    itemsArr.push(await Item.find({ itemId: item };
}

【问题讨论】:

  • 这些是完全不同的东西
  • 这个应该可以帮助你理解一个问题stackoverflow.com/a/37576787/11918758
  • 感谢@NykolaiTopchyi 我现在明白了.. 我用坏了地图功能..

标签: javascript mongoose


【解决方案1】:

Array.map 最适合在您想要为循环中的每个项目实现一个函数时使用

var array1 = [1, 4, 9, 16];

// pass a function to map
const map1 = array1.map(x => x * 2);

console.log(map1);
// expected output: Array [2, 8, 18, 32]

解决您的 array.map 问题的最佳情况是

      Promise.all(items.map( async (e) => {
 itemsArr.push(await Item.find({ itemId: e };
}));

【讨论】:

  • 你的 map 方法不是异步的,你需要一个异步的 map 方法
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-07
  • 1970-01-01
  • 2012-07-12
  • 2021-09-25
相关资源
最近更新 更多