// 2635. Apply Transform Over Each Element in Array function map(arr: number[], fn: (n: number, i: number) => number): number[] { let ret: number[] = []; const limit: number = arr.length; for ( let i = 0; i < limit; ++i ) { ret[i] = fn(arr[i], i); } return ret; }; function main() { function r(arr: number[], fn: (n: number, i: number) => number, exp: number) { console.log(`map([${arr}], ${fn}) = ${map(arr, fn)} | exp: ${exp}`) } r([1,2,3], function plusone(n) { return n + 1; }, [2,3,4]) r([1,2,3], function plusI(n, i) { return n + i; }, [1,3,5]) r([10,20,30], function constant() { return 42; }, [42,42,42]) } main()