👉 map

map() 方法创建一个新数组,其结果是该数组中的每个元素调用一次给定函数后的返回值

💠 语法

var new_array = arr.map(function callback(currentValue[, index[, array]]) {
 // Return element for new_array
}[, thisArg])
  • callback - 生成新数组元素的函数,接收一至三个参数:
    • currentValue - 数组中当前正在处理的元素
    • index [可选] - 正在处理的元素在数组中的索引
    • array [可选] - 调用 map 方法的数组本身
  • thisArg [可选] - 当执行回调函数 callback 时,用作 this 的值
  • 返回值 - 一个由原数组每个元素执行回调函数的结果组成的新数组

✍️ 实现

Array.prototype.myMap = function(callback) {
  arr = [];
  for (var i = 0; i < this.length; i++) {
    arr[i] = callback(this[i], i, this);
  }
  return arr;
}

📌 测试

const arr = [1, 2, 3];
const newVal = arr.myMap((i) => Math.pow(i, 2));
console.log(newVal); // [1, 9, 16]

🔗 参考