簡體   English   中英

Javascript - 動態推送到新數組?

[英]Javascript - Push to a new array dynamically?

您好,我是 javascript 的新手,所以如果我的解釋不是最好的,我很抱歉。

我正在從一個名為myData的數組中取回我的數據。 我有一個條件語句檢查頁面 url 並取決於 url 我將數組的特定索引推送到一個名為stateArray的新數組

目前我正在使用這樣的推送方法:

stateArray.push(myData[1][5], myData[2][5], myData[3][5], myData[4][5], myData[5][5], myData[6][5], myData[7][5], myData[8][5], myData[9][5], myData[10][5], myData[11][5], myData[12][5], myData[13][5], myData[14][5], myData[15][5], myData[16][5], myData[17][5], myData][5])

stateArray的返回正在返回我期望的數據,但我將有十個不同的條件,並且想知道是否有一種方法可以更好地為每個條件執行 17 次推送?

對於條件,每個元素都是相同的。 例如

if (url.includes('/states/') {
stateArray.push(myData[1][5], myData[2][5], myData[3][5], myData[4][5], myData[5][5], myData[6][5], myData[7][5], myData[8][5], myData[9][5], myData[10][5], myData[11][5], myData[12][5], myData[13][5], myData[14][5], myData[15][5], myData[16][5], myData[17][5], myData][5])
} else if (url.includes('/homes/) {
stateArray.push(myData[1][6], myData[2][6], myData[3][6], myData[4][6], myData[5][6], myData[6][6], myData[7][6], myData[8][6], myData[9][6], myData[10][6], myData[11][6], myData[12][6], myData[13][6], myData[14][6], myData[15][6], myData[16][6], myData[17][6], myData][6])
} else if (url.incldues('/retail/) {
stateArray.push(myData[1][7], myData[2][7], myData[3][7], myData[4][7], myData[5][7], myData[6][7], myData[7][7], myData[8][7], myData[9][7], myData[10][7], myData[11][7], myData[12][7], myData[13][7], myData[14][7], myData[15][7], myData[16][7], myData[17][5], myData][7])

}

就像我之前提到的,我目前有 10 個條件,並且很難維護和更新。 有沒有辦法動態生成相同的結果? 我相信這可以通過循環來完成,但我不熟悉在特定索引處推送和在特定索引處結束的語法。

我的預期結果是通過每個條件並推入新陣列的人手不足的方法。

您可以使用forEach

if (url.includes('/states/')) {
  myData.forEach(e => stateArray.push(e[5]));
} else if (url.includes('/homes/')) {
  myData.forEach(e => stateArray.push(e[6]));
} else if (url.includes('/retail/')) {
  myData.forEach(e => stateArray.push(e[7]));
}

(另請注意,您需要第二個)if結束時關閉ifincludes

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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