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 方法
function customMap(array, callback) {
const result = [];
for (let i = 0; i < array.length; i++) {
result.push(callback(array[i], i, array));
}
return result;
}
const arr = [1, 2, 3];
const newArr = customMap(arr, (item) => item * 2);
console.log(newArr); // [2, 4, 6]
使用 reduce 实现 map
function mapWithReduce(array, callback) {
return array.reduce((acc, current, index, arr) => {
acc.push(callback(current, index, arr));
return acc;
}, []);
}
const arr = [1, 2, 3];
const newArr = mapWithReduce(arr, (item) => item * 2);
console.log(newArr); // [2, 4, 6]
扩展 Array.prototype
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 newArr = arr.myMap((item) => item * 2);
console.log(newArr); // [2, 4, 6]
注意事项
- 回调函数接收三个参数:当前元素、索引和原数组。
map方法不会改变原数组,而是返回一个新数组。- 避免在扩展原生原型时覆盖已有方法或影响其他代码。






