【问题标题】:Why does my Javascript loop only return the first value?为什么我的 Javascript 循环只返回第一个值?
【发布时间】:2020-04-20 15:10:37
【问题描述】:

我正在 ES6 中创建一个循环,它将用于循环并输出 51 个图像序列。我创建了一个 for 循环,但它只在运行时返回第一张图片 image_0000.jpg。

为什么没有返回全部 51 张图片?

sequenceImages() {
    for (let i = 0; i < 51; i++) {
      return <img src={require(`../images/image_000${i}.jpg`)} alt="" />

    }
  }

【问题讨论】:

  • 因为你在return里面for。创建一个数组,在循环内推入它,然后返回数组
  • 或使用Array.prototype.map
  • 你好,一旦你使用return语句,它就会退出循环。所以目前,你的循环只运行一次。因此,首先将您的图像保存在循环内的数组中,循环外返回该数组。
  • developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/… 。 "return 语句结束函数执行" 函数执行。
  • 解决了,我太傻了。谢谢。

标签: javascript ecmascript-6 jsx


【解决方案1】:

您的 return 语句在第一次通过循环时立即退出函数。听起来您希望它返回许多 &lt;img&gt; 标签,因此您可以执行以下操作:

gitImage(i) {
  return <img src={require(`../images/image_000${i}.jpg`)} alt="" />
}
sequenceImages() {
  const images = [];
  for (let i = 0; i < 51; i++) {
    images.push(getImage(i));
  }
  return images;
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-21
    • 1970-01-01
    • 2019-11-29
    • 2018-07-29
    相关资源
    最近更新 更多