如何为数组创建函数?

时间:2019-02-13 00:31:46

标签: arrays typescript function return

我刚上编程课程的第一周,确实陷在这个问题上,需要一些帮助:

给定一个由正整数组成的数字数组,定义一个函数,将索引i处的数字替换为arr [i]

例如fx([3, 2, 1])将返回[3, 3, 3, 2, 2, 1]

我什至不知道如何开始。

我正在使用打字稿。

我需要使用for循环吗?我将如何定义“ i”?

1 个答案:

答案 0 :(得分:0)

  • 为此,请使用Array.fill,它可以创建具有特定长度的特定项的数组。换句话说,项目3变为[3, 3, 3]
  • 使用Array.map将数组中的每个项目转换为该项目的数组。完成此步骤后,您的[3, 2, 1]将成为[ [3, 3, 3], [2, 2], [1] ]
  • 使用Arrray.flat展平您的数组。这会将先前的2D数组转换为一维。最终给您所需的[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));