簡體   English   中英

有人可以向我解釋函數中的一行代碼嗎

[英]Can someone explain me a line of code in a function

有人可以解釋我這行代碼實際上是什么意思一步一步。

arrRes.push(fn(arr[i]));

我理解推送部分,但我很難掌握括號中的代碼。

整個函數如下所示:

function arrayCalc (arr, fn) {

    arrRes = [];

    for (let i = 0; i < arr.length; i++) {

        arrRes.push(fn(arr[i])); // <--- this line here in the parenthesis

    }
    return arrRes;
};

對不起,如果這是一個愚蠢的問題,但我已經觀看了五次教程視頻,我只是無法理解該行的確切含義。

謝謝!

有一些函數fn作為參數和數組arr傳遞

arrRes.push(fn(arr[i])); - 方法:

  1. arr取值(索引為i
  2. 作為參數執行函數fn
  3. 無論結果如何,將其推送到arrRes

例子

 function arrayCalc (arr, fn) { arrRes = []; for (let i = 0; i < arr.length; i++) { arrRes.push(fn(arr[i])); } return arrRes; }; const someArr = [1,2,3]; function someFunction(number) { return number * 10; } function someOtherFunction(number) { return `${number}_Z`; } console.log(arrayCalc(someArr, someFunction)) // [10, 20, 30] console.log(arrayCalc(someArr, someOtherFunction)) // ['1_Z', '2_Z', '3_Z']

這通常稱為映射:將函數應用於集合的每個元素...因此,如果您有一個數組 [1,2,3] 並將其映射到一個將數字乘以 2 的函數,您將以數組等於 [2,4,6]。

要計算它,您需要一個數組arr和一個函數fn 然后依次對arr每個元素應用fn並將結果放在新集合的末尾。 你可以把它寫成:

arrRes = [];
for (let i = 0; i < arr.length; i++) {
    var dummy = arr[i]; 
    var mapped = fn(dummy);
    arrRes.push(mapped);
}

暫無
暫無

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

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