arrays - 如何为数组创建函数?
问题描述
我在编程课程的第一周,真的被这个问题困住了,需要一些帮助:
给定一个正整数数组,定义一个函数,将索引 i 处的数字替换为 arr[i]
例如fx([3, 2, 1])
会返回[3, 3, 3, 2, 2, 1]
。
我什至不知道如何开始。
我正在使用打字稿。
我需要使用 for 循环吗?我将如何定义“ i
”?
解决方案
- 为此,请使用Array.fill,它可以创建具有特定长度的特定项目的数组。换句话说,项目
3
变成[3, 3, 3]
- 使用Array.map将数组中的每个项目转换为该项目的数组。完成此步骤后,您
[3, 2, 1]
将成为[ [3, 3, 3], [2, 2], [1] ]
- 使用Array.flat展平您的阵列。这会将之前的二维数组转换为一维数组。终于给
[3, 3, 3, 2, 2, 1]
你你想要的
您的fx
遗嘱将如下所示:
const fx = arr => arr.map(x => Array(x).fill(x)).flat();
const arr = [3, 2, 1];
console.log(fx(arr));
推荐阅读
- c# - DbContext 错误:在前一个操作完成之前在此上下文上启动了第二个操作
- python - Django Python电子邮件验证多个用户之间没有共享电子邮件
- bash - Azure CLI - 用于设置 API 管理自定义域的 Bash 脚本
- c# - 如何在不中断用户的情况下缓存对象?
- jsoup - 有没有获取 jSoup jar 版本的方法?
- asp.net - aspx.vb 中未提供存储过程的参数
- url - 打开 URL 时 PERSISTED_QUERY_NOT_FOUND
- erlang - 是否可以在不停止我的程序的情况下调用内部调用“halt()”的函数?
- reactjs - React useRef 不适用于 Material UI TextField
- java - 我不能在 JSP 声明脚本中使用 response.getWriter() 来初始化关于 PrintWriter 对象