js 实现map
实现 JavaScript 的 map 方法
在 JavaScript 中,map 是一个常用的数组方法,用于对数组中的每个元素执行指定的函数,并返回一个新数组。以下是几种实现 map 的方法:
使用原生 Array.prototype.map
原生 map 方法是最直接的方式:
const arr = [1, 2, 3];
const mappedArr = arr.map(x => x * 2);
console.log(mappedArr); // [2, 4, 6]
自定义 map 方法
可以通过扩展 Array 的原型或直接定义一个函数来实现 map 的功能:
function customMap(arr, callback) {
const result = [];
for (let i = 0; i < arr.length; i++) {
result.push(callback(arr[i], i, arr));
}
return result;
}
const arr = [1, 2, 3];
const mappedArr = customMap(arr, x => x * 2);
console.log(mappedArr); // [2, 4, 6]
使用 reduce 实现 map
reduce 方法也可以用来实现 map 的功能:

function mapWithReduce(arr, callback) {
return arr.reduce((acc, current, index, array) => {
acc.push(callback(current, index, array));
return acc;
}, []);
}
const arr = [1, 2, 3];
const mappedArr = mapWithReduce(arr, x => x * 2);
console.log(mappedArr); // [2, 4, 6]
注意事项
- 自定义实现时需确保回调函数的参数(当前元素、索引、原数组)与原生的
map一致。 - 避免在回调函数中修改原数组,否则可能导致不可预期的行为。
- 性能上,原生
map通常比自定义实现更高效。






