当前位置:首页 > JavaScript

js map实现

2026-03-14 13:13:27JavaScript

map 方法的基本用法

map 是 JavaScript 数组的一个高阶函数,用于遍历数组并对每个元素执行指定的操作,最终返回一个新数组。原数组不会被修改。

const numbers = [1, 2, 3];
const doubled = numbers.map(num => num * 2);
console.log(doubled); // [2, 4, 6]

map 方法的参数

map 方法接受一个回调函数作为参数,回调函数可以接收三个参数:

  • currentValue:当前处理的数组元素。
  • index(可选):当前元素的索引。
  • array(可选):调用 map 的数组本身。
const numbers = [1, 2, 3];
const squaredWithIndex = numbers.map((num, index) => `${index}: ${num * num}`);
console.log(squaredWithIndex); // ["0: 1", "1: 4", "2: 9"]

使用 thisArg 绑定上下文

map 方法的第二个参数是 thisArg,用于指定回调函数中的 this 值。

const obj = {
  multiplier: 2,
  multiply(numbers) {
    return numbers.map(function(num) {
      return num * this.multiplier;
    }, this);
  }
};
console.log(obj.multiply([1, 2, 3])); // [2, 4, 6]

手动实现 map 方法

以下是一个手动实现 map 方法的示例:

js map实现

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

const numbers = [1, 2, 3];
const tripled = numbers.myMap(num => num * 3);
console.log(tripled); // [3, 6, 9]

map 方法的常见用途

  • 转换数组元素:将数组中的每个元素转换为另一种形式。
  • 提取对象属性:从对象数组中提取特定属性。
  • 生成新数据结构:将数组转换为另一种数据结构(如对象或字符串)。
const users = [
  { id: 1, name: 'Alice' },
  { id: 2, name: 'Bob' },
  { id: 3, name: 'Charlie' }
];
const names = users.map(user => user.name);
console.log(names); // ["Alice", "Bob", "Charlie"]

注意事项

  • map 方法不会改变原数组,而是返回一个新数组。
  • 回调函数必须显式返回值,否则新数组会填充 undefined
  • 稀疏数组(包含空位)的 map 行为会跳过空位。

标签: jsmap
分享给朋友:

相关文章

js实现图片轮播

js实现图片轮播

实现基础图片轮播 使用HTML、CSS和JavaScript创建一个简单的图片轮播。HTML部分定义轮播容器和图片,CSS设置样式和动画效果,JavaScript处理轮播逻辑。 <div cl…

js实现tab选项卡切换

js实现tab选项卡切换

实现Tab选项卡切换的JavaScript方法 使用纯JavaScript实现Tab切换功能,可以通过监听点击事件动态切换内容显示状态。以下是两种常见实现方式: 基础DOM操作实现 /…

js实现防洪

js实现防洪

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

js怎么实现异步

js怎么实现异步

异步实现方法 JavaScript中实现异步操作主要通过以下几种方式: Promise Promise是ES6引入的异步解决方案,用于处理异步操作的成功或失败状态。 const promise =…

js实现跑马灯

js实现跑马灯

实现跑马灯效果 使用HTML和JavaScript可以轻松实现跑马灯效果。以下是两种常见的实现方式: HTML结构 <div id="marquee"> <span>…

js实现按钮点击

js实现按钮点击

实现按钮点击的JavaScript方法 HTML按钮元素 在HTML中创建按钮元素,为其添加id或class以便JavaScript选择: <button id="myButton">点…