实现数组的 map 方法
手写 TypeScript 版本的数组 map 方法
问题
实现一个 myMap 函数,功能与数组原生的 map 方法相同,但不能使用 map 方法本身。
解答
/**
* @file 实现数组 map 方法
*/
function myMap<T, R>(arr: T[], callbackFn: (v: T) => R): R[] {
const result: R[] = [];
for (let i = 0; i < arr.length; i++) {
result[i] = callbackFn(arr[i]);
}
return result;
}
// 测试
console.log(myMap([1, 2, 3], v => v * 2)); // [2, 4, 6]
export default {};
关键点
- 创建新数组存储转换后的结果,不修改原数组
- 使用
for循环遍历原数组的每个元素 - 对每个元素调用回调函数,将返回值存入新数组对应位置
- 使用 TypeScript 泛型
<T, R>保证类型安全,T为输入类型,R为输出类型
目录