黄石企业做网站,聊城优化seo,郑州平台制作,海口手机端建站模板说在前面 #x1f388;不知道大家对于算法的学习是一个怎样的心态呢#xff1f;为了面试还是因为兴趣#xff1f;不管是出于什么原因#xff0c;算法学习需要持续保持。 题目描述
编写一个函数#xff0c;这个函数接收一个整数数组 arr 和一个映射函数 fn #xff0c;通…说在前面 不知道大家对于算法的学习是一个怎样的心态呢为了面试还是因为兴趣不管是出于什么原因算法学习需要持续保持。 题目描述
编写一个函数这个函数接收一个整数数组 arr 和一个映射函数 fn 通过该映射函数返回一个新的数组。
返回数组的创建语句应为 returnedArray[i] fn(arr[i], i) 。
请你在不使用内置方法 Array.map 的前提下解决这个问题。
示例 1:
输入arr [1,2,3], fn function plusone(n) { return n 1; }
输出[2,3,4]
解释
const newArray map(arr, plusone); // [2,3,4]
此映射函数返回值是将数组中每个元素的值加 1。示例 2:
输入arr [1,2,3], fn function plusI(n, i) { return n i; }
输出[1,3,5]
解释此映射函数返回值根据输入数组索引增加每个值。示例 3:
输入arr [10,20,30], fn function constant() { return 42; }
输出[42,42,42]
解释此映射函数返回值恒为 42。提示
0 arr.length 1000-109 arr[i] 109 fn 返回一个数
解题思路
实现了一个map函数它接受一个数组和一个函数作为参数返回一个新的数组新数组中的元素是原数组中每个元素经过函数处理后的结果。
具体的实现步骤如下
定义一个名为map的函数它接受两个参数一个数组arr和一个函数fn。创建一个长度与输入数组相同的结果数组res。使用for循环遍历输入数组中的每个元素同时将元素的值和下标作为参数传递给函数fn并将函数的执行结果赋值给结果数组res的相应位置。循环结束后返回结果数组res。
例如调用map([1, 2, 3], x 2 * x)它会将输入数组[1, 2, 3]中的每个元素都乘以2得到一个新的数组[2, 4, 6]作为结果。 这段代码的时间复杂度为O(n)其中n为输入数组的长度。 AC代码
/*** param {number[]} arr* param {Function} fn* return {number[]}*/
var map function(arr, fn) {const res new Array(arr.length);for(let i 0; i arr.length; i){res[i] fn(arr[i],i);}return res;
};公众号
关注公众号『前端也能这么有趣』获取更多有趣内容。
说在后面 这里是 JYeontu现在是一名前端工程师有空会刷刷算法题平时喜欢打羽毛球 平时也喜欢写些东西既为自己记录 也希望可以对大家有那么一丢丢的帮助写的不好望多多谅解 写错的地方望指出定会认真改进 偶尔也会在自己的公众号『前端也能这么有趣』发一些比较有趣的文章有兴趣的也可以关注下。在此谢谢大家的支持我们下文再见 。