javascript - forEach循环后输出的只是最后一个数据吗?
高洛峰
高洛峰 2017-05-19 10:09:07
0
3
659

如代码所示,foreach循环后生成的数据只是最后一个吗?我console.log(index);控制台能打出来0,1,2,3,4啊,但是最后显示在页面上的图片都是case:4 时的图片。

 this.items.forEach((item:any) => {
                  // var index = this.items.indexOf(item);
                  // console.log(index);
                     // this.index.push(index);
                  switch (this.items.indexOf(item)){
                      case 0: this.imgSrc ='assets/liangshi.png';
                        break;
                      case 1: this.imgSrc ='assets/xiela.png';
                        break;
                      case 2: this.imgSrc ='assets/xuansuo.png';
                        break;
                      case 3: this.imgSrc ='assets/ganggou.png';
                        break;
                      case 4: this.imgSrc ='assets/gongqiao.png';
                        break;
                      default:
                        this.imgSrc = 'assets/ICON4TEST.png';
                  }
              });

这个是显示在页面上的效果,图片全是最后一个

高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

全部回复(3)
世界只因有你

你使用了同一个变量来传递图片,最后肯定都被gongqiao.png给覆盖了啊。
如果你想针对数组中每一个元素存储一个对应的图片,你应该用一个数组啊。

仅有的幸福

可能是因为this.imgSrc最后取的值是4,前面的值没保存或者没进行后续操作

阿神

不要在javascript的箭头函数里用this
不要在javascript的箭头函数里用this
不要在javascript的箭头函数里用this

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板