2635. 转换数组中的每个元素

说在前面

🎈不知道大家对于算法的学习是一个怎样的心态呢?为了面试还是因为兴趣?不管是出于什么原因,算法学习需要持续保持。

题目描述

编写一个函数,这个函数接收一个整数数组 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代码

javascript 复制代码
/**
 * @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,现在是一名前端工程师,有空会刷刷算法题,平时喜欢打羽毛球 🏸 ,平时也喜欢写些东西,既为自己记录 📋,也希望可以对大家有那么一丢丢的帮助,写的不好望多多谅解 🙇,写错的地方望指出,定会认真改进 😊,偶尔也会在自己的公众号『前端也能这么有趣』发一些比较有趣的文章,有兴趣的也可以关注下。在此谢谢大家的支持,我们下文再见 🙌。

相关推荐
passer__jw7673 分钟前
【LeetCode】【算法】283. 移动零
数据结构·算法·leetcode
光影少年4 分钟前
vue2与vue3的全局通信插件,如何实现自定义的插件
前端·javascript·vue.js
As977_6 分钟前
前端学习Day12 CSS盒子的定位(相对定位篇“附练习”)
前端·css·学习
susu10830189118 分钟前
vue3 css的样式如果background没有,如何覆盖有background的样式
前端·css
Ocean☾9 分钟前
前端基础-html-注册界面
前端·算法·html
Rattenking9 分钟前
React 源码学习01 ---- React.Children.map 的实现与应用
javascript·学习·react.js
Dragon Wu11 分钟前
前端 Canvas 绘画 总结
前端
CodeToGym16 分钟前
Webpack性能优化指南:从构建到部署的全方位策略
前端·webpack·性能优化
~甲壳虫17 分钟前
说说webpack中常见的Loader?解决了什么问题?
前端·webpack·node.js
顶呱呱程序17 分钟前
2-143 基于matlab-GUI的脉冲响应不变法实现音频滤波功能
算法·matlab·音视频·matlab-gui·音频滤波·脉冲响应不变法