一段代碼我試圖完全理解:
const words = ['chair', 'music', 'pillow', 'brick', 'pen', 'door'];
const shortWords = words.filter(word => {
return word.length < 6;
});
我目前的假設是 shortWords 是一個函式,它有另一個函式作為引數傳入。
所以 shortWords 是在 words 陣列上使用 .filter 。傳遞給 shortWords 函式的引數(也是一個函式?)應該回傳陣列中長度小于 6 個字母的所有單詞。
我的理解正確還是我錯過了什么?(再次,可能是第二個......)
uj5u.com熱心網友回復:
是的,你是對的,除了它shortWords是一個存盤由 .filter 函式回傳的陣列的變數。
的型別words是一個陣列。
const words = ['chair', 'music', 'pillow', 'brick', 'pen', 'door'];
Array.filter是一種方法/函式,可讓您回圈遍歷陣列。顧名思義,它用于過濾陣列并創建一個新陣列。
Array.filter 接受一個函式作為引數。在您提供的代碼段中,您已將箭頭函式作為過濾器方法中的引數傳遞。
這類似于以下具有簡單功能的代碼:
function filterFunctionAsParam(word) {
return word.length < 6;
}
const shortWords = words.filter(filterFunctionAsParam);
filter 方法不會更改它所作用的陣列。那就是它不會改變單詞陣列。words 陣列的值不會改變。相反,它回傳一個過濾后的陣列。shortWords是過濾后的陣列。
對于每個陣列元素,如果 filterFunctionAsParam 回傳的條件為真,則該元素由過濾函式回傳。
這也可以通過Array.map、Array.reduce方法來實作。
uj5u.com熱心網友回復:
我目前的假設是 shortWords 是一個函式,它有另一個函式作為引數傳入。
不,filter是一個函式,它有另一個函式作為引數傳遞給它。
它對陣列進行操作,并對陣列中的每個元素呼叫傳入的函式 - 如果它回傳 true,則該陣列項包含在呼叫的結果中filter。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/497573.html
標籤:javascript 功能
上一篇:如何創建一個物件陣列,其中一個屬性是來自單個陣列的陣列
下一篇:反轉線性漸變圖例中的顏色方向
