В массиве строк, как я могу напечатать первый элемент x количество раз, а затем распечатать второй элемент x количество раз и так далее?

#javascript #arrays #string #foreach

#javascript #массивы #строка #foreach

Вопрос:

Например: myArray = [«Дэйв», «Том», «Пит»];

Я хотел бы напечатать каждый элемент в myArray 3 раза в следующем формате:

Дейв
Дейв
Дейв
Том
Том
Том
Пит
Пит
Пит

Циклы forEach (по крайней мере, сами по себе), похоже, не справляются с тем, что я пытаюсь сделать. Я переключаюсь между различными методами array и string, но я чувствую, что мне не хватает какой-то комбинации. Любая помощь будет оценена. Спасибо.

Комментарии:

1. используйте вложенный цикл for, пожалуйста

2. Это не сервис для написания кода или обучения. Ожидается, что вы покажете свои собственные попытки решить вашу проблему самостоятельно … или любое исследование, которое вы провели. Затем люди помогут вам исправить любые конкретные проблемы в вашем коде

3. Подумайте о функции или двух, которые вы могли бы написать для этого. (Затем попробуйте и опубликуйте свою попытку)

Ответ №1:

Все, что вам действительно нужно сделать здесь, это иметь два вложенных цикла for . Первый перебирает ваш массив строк; второй цикл содержит любой механизм, который вы хотите использовать для «печати» ваших строк. Здесь у меня есть две переменные, одна из которых — ваш массив, а вторая — простой x, чтобы выбрать, сколько раз вы хотите напечатать свою строку.

Кроме того, как сказано в комментарии выше, это не служба написания кода. В следующий раз вам действительно нужно привести пример того, что вы сделали, что не сработало, и задать вопрос на основе этого. Цикл forEach на самом деле должен работать просто отлично.

 let myArray = ["Dave", "Tom", "Pete"];
let x = 3;
for (let i = 0; i < myArray.length; i  ) {
    for (let j = 0; j < x.length; j  ) {
        // whatever printing mechanism you would like goes here. let's make some html
        let element = document.createElement('p');
        element.textContent = myArray[i];
        document.body.appendChild(element);
    }
}
  

Ответ №2:

Если вы хотите сделать что-то «x раз» для каждого элемента, это именно то, что вы должны сделать: «для каждого элемента»: «do … x раз «

 ["Dave", "Tom", "Pete"].forEach((e) => {
  for (let i = 0; i < 3; i  ) console.log(e);
});