js foreach 循环赋值只取到了最后个对象中的某个属性

想把productSkus中的每一项的image替换成 uploadSpecArr的每一项,但是最后赋值后,productSkus里面的image全都变成了uploadSpecArr里面的最后一项,应该如何解决,感谢各位

  
 if (this.uploadSpecArr.length > 1){
         let data = [];
       //表格数据
        productSkus.forEach((item, index2) => {
          // let tempData = {}
        //图片数组
          this.uploadSpecArr.forEach((item2,index)=>{
           if (this.status === '编辑按钮') {
              // data[index2].image = item2.image
              productSkus[index2].image = this.uploadSpecArr[index].image      
           }
          })
        })
      }

image.png

image.png

阅读 3.7k
3 个回答

看你的代码,数组下标应该是对应的。只需要循环一遍就可以了。
如果像你写的那样两遍循环,productSkus 里的每一项都会被 uploadSpecArr 每次循环赋一次值,后面的赋值会替换之前的,最后生效的就是最后一条了。

...
//表格数据
        productSkus.forEach((item, index2) => {
          // let tempData = {}
        //图片数组
          
           if (this.status === '编辑按钮') {
              // data[index2].image = item2.image
              productSkus[index2].image = this.uploadSpecArr[index2].image      
           }
        })
...
新手上路,请多包涵

productSkus.map((item, index) => item.image = this.uploadSpecArr[index].image)

新手上路,请多包涵
if (this.status === '编辑按钮') {
    productSkus.forEach((product, index) => {
        product.image = this.uploadSpecArr[index].image      
    })
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题