Array.prototype.map() 需要箭頭函數的回傳值:Fix

Array.prototype.map() 需要箭頭函數的回傳值:Fix

Javascript 中可能會彈出錯誤提示「Array.prototype.map() Expects a return value from Arrow Function 」訊息。在多種情況下您可能會遇到此問題,並且有多種方法可以繞過此問題。一般來說,在使用「Array.prototype.map()」函數時,如果程式碼執行時不傳回任何內容(null)。否則,如果您在前面涉及過濾方法的步驟中犯了錯誤,也可能會出現相同的錯誤訊息。

修復 – 1 替換括號

通常,程式碼中寫入的括號不會造成任何錯誤。但是,在本例中,在程式碼中使用 {},而不是 ()。

範例– 這段程式碼 –

{

如果 (Object.keys(t.pr.part).map((par) => {

if(t.pr.part[par].user_identifiant === getUrlParams(window.location.hash).user_identifiant)

this.setState({

par:t.pr.part[部分].id_user

})

})

}

這部分程式碼將會得到「Expected to return a value in arrow function」訊息。要解決這個問題,只需將程式碼中的“ ({ ” 更改為“ (( ” 即可。

就像程式碼片段看起來像這樣 –

Object.keys(t.pr.part).map((par) => {

if(t.pr.part[par].user_identifiant === getUrlParams(window.location.hash).user_identifiant)

this.setState((

par:t.pr.part[部分].id_user

))

)}

))

第 1 分鐘 1

這樣,您就可以對程式碼進行故障排除。

修復 2 – 使用 ForEach 代替 Array.map

不使用 Array.map 函數,而是在程式碼中使用 Array.ForEach 函數來實現相同的結果。

如果程式碼的特定函數不需要傳回任何值,則可以使用 Foreach 函數而不是使用 map 方法。

例子

ListService?.map((service, j) => {

返回 (

<主服務 key={service.id} {…{service, num: j }} />

})

您可以替換主地圖功能並按照以下方式更改程式碼 –

ListService?.forEach((item) => {

csvData.push({

“名稱”:項目?.名稱,

「工作」:專案?.desc,

})

})

每分鐘

這樣,您可以完全繞過Array.map函數並避免獲取返回值訊息。

修復 3 – 傳回空值

如果 Array.map 函數無法迭代任何值,您應該在程式碼末尾包含 else 條件並讓它傳回 null 值。

這很容易。只要包括這個——

else {

傳回空值:

}

}

否則返回空值min

只需要小心括號並執行程式碼即可。接下來,編譯並執行程式碼並進行測試。

每當程式碼失敗時,它至少會迭代一個空值,而不是「Array.prototype.map() Expects a return value from Arrow Function」錯誤訊息。

修復 4 – 使用過濾器程式碼

還有另一種方法可以解決這個問題。如果需要根據某些參數隔離值,請使用「ArrayPrototype.filter()」取代 Array.prototype.map()。

該程式碼的主要語法是 –

let newArray = array.filter(callback(element[, index[, array]])[, thisArg])

這是一個內建方法,可以過濾掉滿足指定函數條件的整組資料。

這些是您可以對 Javascript 中的傳回值訊息進行故障排除的方法。

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *