[英]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]));
- 方法:
arr
取值(索引为i
)fn
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.