[函数式编程:在PrototypePassed JavaScript上实现映射

问题描述 投票:0回答:1

我正在做FreeCodeCamp的练习,但我没有逻辑和代码。就是这里:

// the global Array
var s = [23, 65, 98, 5];

Array.prototype.myMap = function(callback) {
  var newArray = [];
  // Add your code below this line
  this.forEach(a => newArray.push(callback(a)));
  // Add your code above this line
  return newArray;
};

var new_s = s.myMap(function(item) {
  return item * 2;
});

有人可以帮我解释一下吗?谢谢!

javascript foreach callback prototype
1个回答
0
投票

此代码将向new_s输出包含s x 2的值的数组>

让我们回顾一下:

Array.prototype.myMap = function(callback) { ... }
  • myMap是适用于数组的函数(Array.prototype
  • 此函数有一个名为callback的参数。此参数将是一个函数(即使在这里您仍然只能从参数名称中猜测;)
  var newArray = [];
  // Add your code below this line
  this.forEach(a => newArray.push(callback(a)));
  // Add your code above this line
  return newArray;
  • 遍历this的所有值(将应用myMap的数组)
  • callback引用的功能应用于每个值
  • callback函数的结果添加到newArray数组中>
  • 返回结果数组
  • 最后:

var new_s = s.myMap(function(item) {
  return item * 2;
});
  • myMap功能应用于s,而callback功能是将返回s2 * s的值的功能>
© www.soinside.com 2019 - 2024. All rights reserved.