[英]Is there a way to map a value in an object to the index of an array in javascript?
[英]Is there a way to access to an index value while iterating over a Map object in javascript?
在我的項目中,我必須將Javascript對象轉換為名為mapResults的Map對象。 經過一些轉換(切出前兩個值)之后,我現在想遍歷此集合以使用以下語法呈現一些列表項。
事實是,我還有一個名為resultsKey的數組, 其中包含要用作每個列表項的{keys}的字符串。 因此,可以說我的Map對象和字符串數組如下所示:
mapResults =
0: gameStatus -> "You Won!"
1: difficulty -> "Intermediate"
2: movesCount -> 13
resultsKey = [
"Final result",
"Level",
"Number of movements",
]
現在,我想遍歷兩個集合以獲取所需的列表項輸出為:
列表項的每個鍵都取自我的resultsKey數組,而每個值都取自我的mapResults對象。 兩個集合的長度/大小相同。
我知道如果我有一個Object對象(將其命名為objectResults )而不是Map對象,則可以通過在Object上調用Object.keys(),然后在結果數組上調用.map()或forEach()來實現此目的(將其稱為objectResultsKeys ),如下所示:
objectResultsKeys.map((key, index)=>{
return <li>
{resultsKey[index]}:{objectResults[key]}
</li>
})
這里的事情是,如果遇到這種情況,我將能夠使用.map()函數提供的index參數來訪問resultsKey字符串數組並獲取所需的值。 但是當涉及到Map對象的迭代時,就沒有這種事情了 。
因此,我想知道的是,是否有任何解決方案可以為我提供索引值,並可以在迭代Map對象時用來訪問我的字符串數組。 或者,如果還有其他解決方案可以實現與我所解釋的結果類似的結果。 我必須將Map對象用於此解決方案。
您可以選擇櫃台:
let index = 0;
for(const [key, value] of map.entries()) {
// ...
index++;
}
或者,您將條目轉換為數組:
[...map.entries()].forEach(([key, value], index) =>
//...
);
但是實際上,由於地圖是按插入時間排序的,所以我不會依賴於地圖的順序。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.