@KGZVER

Как решать эту задачу с массивами?

Есть массив "commands" с массивами внутри и пустой текст "text".
const hanldeTextEditor = () => {
  let commands = [[3, 'a'], [1, 'b']]
  let text = ''
  }


Нужно заполнить текст исходя из данных в массиве (второй индекс буква которая должна быть в тексте, первый индекс количество букв).
Соответственно должно получиться
text = 'a,a,a,b'

Попробовал прогнать через цикл внутри цикла, но не получилось.
for(let i = 0; i < commands.length; i++) {
      for(let a = 0; a < commands[i][0]; i++) {
        text = text + commands[i][1]
      }
     }
  • Вопрос задан
  • 131 просмотр
Решения вопроса 2
0xD34F
@0xD34F Куратор тега JavaScript
`${commands.map(n => Array(n[0]).fill(n[1]))}`
Ответ написан
bingo347
@bingo347 Куратор тега JavaScript
Crazy on performance...
text = commands.flatMap(([length, char]) => Array.from({length}, () => char)).join(',');
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@V0vash
Сделал наглядно, чтобы понял логику действий, есть более короткое решение
const hanldeTextEditor = () => {
  let commands = [[3, 'a'], [1, 'b']]
  let text = ''
  
  commands.forEach((command)=>{
    for (let i = 0; i < command[0]; i++)
  text = text + command[1];
    console.log(text);
  })
  }

hanldeTextEditor()
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы