Как создать функцию для массива? - PullRequest
0 голосов
/ 13 февраля 2019

Я на первой неделе курса по программированию, и я действительно застрял в этой проблеме, и мне нужна помощь:

Учитывая массив чисел с положительными целыми числами, определите функцию, которая заменяет число в индексе i наarr [i]

Например, fx([3, 2, 1]) вернет [3, 3, 3, 2, 2, 1].

Я даже не знаю, с чего начать.

Я использую машинопись.

Нужно ли использовать цикл for?Как бы я определил "i"?

1 Ответ

0 голосов
/ 13 февраля 2019
  • Для этого используйте 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));
...