标签:img 添加 i2 循环 let 数组 ImgArray
需求:
循环创建符合要求的对象后,将其保存进数组内
代码:
randomImgYield(num1, num2) { let NumImgRandom = [] for (let i1 = 0; i1 < num1; i1++) { /** * 循环往数组里添加数组或对象时,需要在循环里创建需要添加的数据变量,保证在局部作用域内有效 * 若在循环外let创建,那对象的内存指针都会指向为最后一个的内存指针 * 则添加的一直为最后的那个对象 */ let ImgArray = [] for (let i2 = 0; i2 < num2; i2++) { let img = {} img.a = this.imgSonDate_set() img.b = this.imgSonSerial_set() img.c = this.imgSonLotNumber_set() ImgArray.push(img) } NumImgRandom.push(ImgArray) // this.letter必须再一张图-6个内容块生成完后清空,否则imgSonSerial_set()会陷入死循环 this.letter = [] } },
重点:
用于保存的数组需要在循环外创建,而生成的对象需要每次在循环内创建;而不能是在循环外创建好后在循环内进行赋值
因为若在循环外let创建,那对象的内存指针都会指向为最后一个的内存指针,则添加的一直为最后的那个对象
列如:(错误示范)
let ImgArray = []
let img = {} for (let i2 = 0; i2 < 3; i2++) { img.id = i ImgArray.push(img) }
最后 ImgArray 结果实际为:[ { id:2 },{ id:2 },{ id:2 } ]
标签:img,添加,i2,循环,let,数组,ImgArray 来源: https://www.cnblogs.com/HE0318bei/p/15921881.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。