当前位置:首页 > JavaScript

js map 实现

2026-02-01 20:35:58JavaScript

实现 JavaScript 的 map 方法

JavaScript 的 map 方法是数组原型上的一个高阶函数,用于对数组的每个元素执行指定操作并返回新数组。以下是几种实现方式:

原生 Array.prototype.map 的使用示例

const arr = [1, 2, 3];
const newArr = arr.map((item) => item * 2);
console.log(newArr); // [2, 4, 6]

手动实现 map 方法(Polyfill)

Array.prototype.myMap = function(callback) {
  const result = [];
  for (let i = 0; i < this.length; i++) {
    result.push(callback(this[i], i, this));
  }
  return result;
};

// 使用示例
const arr = [1, 2, 3];
const doubled = arr.myMap((num) => num * 2);
console.log(doubled); // [2, 4, 6]

使用 reduce 实现 map

Array.prototype.mapViaReduce = function(callback) {
  return this.reduce((acc, current, index, array) => {
    acc.push(callback(current, index, array));
    return acc;
  }, []);
};

// 使用示例
const squares = [1, 2, 3].mapViaReduce((x) => x * x);
console.log(squares); // [1, 4, 9]

注意事项

  • 回调函数接收三个参数:当前元素、当前索引、原数组。
  • map 不会修改原数组,而是返回新数组。
  • 稀疏数组(含 empty 项)会跳过空位,但保留空位在结果中。

性能优化建议

对于大数据量遍历,优先使用原生 map。手动实现时需注意边界条件(如 this 非数组时的处理)。

js map 实现

标签: jsmap
分享给朋友:

相关文章

js实现跳转

js实现跳转

使用 window.location 跳转 通过修改 window.location.href 实现页面跳转,这是最常用的方法。 window.location.href = 'https://…

js实现倒计时

js实现倒计时

使用 setInterval 实现倒计时 通过 setInterval 定时器每秒更新剩余时间,适用于简单倒计时场景。 function countdown(seconds, callbac…

js防抖和节流实现

js防抖和节流实现

防抖(Debounce)的实现 防抖的核心思想是在事件被触发后,延迟执行回调函数。如果在延迟时间内再次触发事件,则重新计时。适用于输入框搜索、窗口大小调整等场景。 function debounc…

js实现pdf在线预览

js实现pdf在线预览

使用PDF.js实现PDF在线预览 PDF.js是由Mozilla开发的一个开源JavaScript库,可以在网页中直接渲染PDF文件。以下是实现PDF在线预览的步骤: 引入PDF.js库 在HT…

js 实现分页

js 实现分页

实现分页的基本逻辑 分页功能通常需要后端返回数据总量或总页数,前端根据当前页码和每页条数截取对应数据。以下是一个基于JavaScript的简单分页实现方案: 前端分页实现 假设已有从后端获取的完整数…

js分组实现

js分组实现

分组实现方法 在JavaScript中,可以通过多种方式实现数组或对象的分组操作。以下是几种常见的方法: 使用Array.prototype.reduce() 通过reduce方法可以轻松实现数组分…