我正在用对象填充数组。每次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个不同的对象,而不是仅用最后一个填充的数组。 在我将附件卡方法移至主要js文件之外之前,此代码已起作用。
观察者:
答案 0 :(得分:0)
您编码的概念还不错。您的代码应该可以正常执行,但是问题出在等待中-某些事情不正确。例如,重新编写代码的工作原理是:
if (document.activeElement instanceof HTMLElement)
document.activeElement.blur();
但是您的代码却没有。在每次循环迭代中尝试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()
来检查返回的对象是否确实是您要寻找的对象-chrome喜欢通过自动更新值来提供帮助。