当前位置: 代码迷 >> 综合 >> 封装函数实现Array.prototype.map()方法
  详细解决方案

封装函数实现Array.prototype.map()方法

热度:12   发布时间:2024-02-27 21:39:34.0
  • map() 方法创建一个新数组,其结果是该数组中的每个元素调用一个提供的函数。
  • map() 方法会给原数组中的每个元素都按顺序调用一次  callback 函数。callback 每次执行后的返回值(包括 undefined)组合起来形成一个新数组。 callback 函数只会在有值的索引上被调用;那些从来没被赋过值或者使用 delete 删除的索引则不会被调用。
  • map() 不修改调用它的原数组本身(可以在 callback 执行时改变原数组)
//map方法使用  
const array1 = [1, 4, 9, 16];
const map1 = array1.map(x => x * 2);
console.log(map1); //[2, 8, 18, 32]
console.log(array1); //[1, 4, 9, 16]

封装函数实现Array.prototype.map()方法

   function map(arr, callBack) {//检查传入的参数if (!Array.isArray(arr) || !arr.length || typeof callBack !== 'function') {return []}//调用函数时,创建一个新的数组不改变原来的数组let result = []for (let i = 0, len = arr.length; i < len; i++) {result.push(callBack(arr[i], i, arr))// 将 callback 返回的结果 push 到 result 数组中}return result;}const a = [10, 20, 30];const list = map(a, (item) => item/10)console.log(list,a) //[1,2,3] [10,20,30]

 

  相关解决方案