簡體   English   中英

Javascript array.push替換先前添加的元素

[英]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文件之外之前,此代碼已起作用。

觀察者:

循環1

Loop 2

循環3

您編碼的概念很好。 您的代碼應該可以正常執行,但是問題出在等待中-某些事情不正確。 例如,重新編寫代碼的工作原理是:

 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM