繁体   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