[英]Javascript array.push replacing previously added elements
我用对象填充数组。 每次for循环迭代时,它都会更新数组的先前项目。
我已经尝试过各种类型的循环,例如for-each,for和for of。
var arrResult = new Array;
for (let element of accessoriesToDisplay) {
var obj = {};
var obj = await AdaptiveCardImporter.accessoryCard(element.Name,
element.Price, element.ProductDescription, element.URL, element.ImgURL);
arrResult.push(obj);
}
该数组的末尾应该有3个不同的对象,而不是仅用最后一个填充的数组。 在我将annexantCard方法移至主要js文件之外之前,此代码已起作用。
观察者:
您编码的概念很好。 您的代码应该可以正常执行,但是问题出在等待中-某些事情不正确。 例如,重新编写代码的工作原理是:
const getObj = e => new Promise(resolve => setTimeout(() => resolve({val:e}), 300)) async function main() { var arrResult = [] var accessoriesToDisplay = [1, 2, 3] for (let element of accessoriesToDisplay) { var obj = await getObj(element) console.log(obj) arrResult.push(obj); } console.log(arrResult) } main()
但是您的代码却没有。 在每次循环迭代中尝试使用console.log(JSON.stringify(obj))
来检查返回的对象是否实际上是您要查找的对象console.log(JSON.stringify(obj))
喜欢通过自动更新值来提供帮助。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.