当前位置:首页 > JavaScript

js map 实现

2026-02-01 20:35:58JavaScript

js map 实现

js map 实现

实现 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 非数组时的处理)。

标签: jsmap
分享给朋友:

相关文章

js实现打印

js实现打印

使用window.print()方法实现打印 在JavaScript中,可以通过调用window.print()方法直接触发浏览器的打印功能。这会打开系统的打印对话框,用户可以选择打印机和设置打印选项…

js实现拷贝

js实现拷贝

实现文本拷贝 使用 document.execCommand 方法(已废弃但兼容性较好): function copyText(text) { const textarea = document…

jquery js

jquery js

jQuery 简介 jQuery 是一个快速、简洁的 JavaScript 库,简化了 HTML 文档遍历、事件处理、动画和 Ajax 交互。它兼容多种浏览器,提供易于使用的 API,使开发者能够更高…

js实现 功能

js实现 功能

在 JavaScript 中实现功能通常涉及多个关键步骤,具体取决于功能需求。以下是常见功能的实现方法和示例: 基本功能实现 使用函数封装逻辑是最直接的方式。例如,实现一个计算两数之和的函数: f…

js 实现拖拽

js 实现拖拽

实现拖拽的基本步骤 在JavaScript中实现拖拽功能需要监听几个关键事件:mousedown、mousemove和mouseup。以下是实现的基本逻辑。 监听目标元素的mousedown事件,记…

js实现弹框

js实现弹框

使用 alert 实现简单弹框 JavaScript 的 alert 方法可以直接显示一个简单的弹框,内容为纯文本: alert("这是一个简单的弹框"); 使用 confirm 实现确认弹框…