我閱讀關於閉環循環中的幾個帖子,但仍然沒有真正知道如何應用於我的情況。如何動態地添加對象到數組(循環中的閉包)
我有三個在HTML中定義的feed url,使用JavaScript promise可以在不阻塞UI的情況下返回響應。我能夠爲每個Feed URL獲取兩個博客條目數據。現在,每個返回的博客條目都有其發佈日期,我想將它們從最新到最舊排序。但是,當我將對象推到數組時,我一直得到最後一個值。我知道這與閉包有關,因爲我不熟悉閉包,所以我很難解決這個問題。任何幫助非常感謝!
var itemArray = [];
var entryObj = {};
promise.then(function (response) {
var parser = new DOMParser();
xml = parser.parseFromString(response, "text/xml");
var items = xml.getElementsByTagName("item");
for (var x = 0; x < items.length && x < limits; x++) {
title = items[x].getElementsByTagName("title")[0].innerHTML;
link = items[x].getElementsByTagName("link")[0].innerHTML;
pubDate = items[x].getElementsByTagName("pubDate")[0].innerHTML;
creator = items[x].getElementsByTagNameNS("http://purl.org/dc/elements/1.1/", "creator")[0].innerHTML;
entryObj.title = title;
entryObj.link = link;
entryObj.pubDate = pubDate;
entryObj.creator = creator;
itemArray.push(entryObj);
// output: all 6 objects contain last value
console.log(itemArray);
}
});
哈哈我現在感覺很傻。這解決了我的問題。謝謝! –