Как я могу использовать Javascript для двукратного перебора элемента массива?

#javascript #node.js #arrays #loops #iteration

#javascript #node.js #массивы #петли #итерация #циклы

Вопрос:

Пожалуйста, помогите! Мне нужно объявить пустой массив ( foodTray = [] ) и запустить цикл 5 раз (для каждой итерации введите тип питания), foodTray должен содержать максимум 2 типа, но общая длина не должна превышать 5.

const foodTypes = ['seafood', 'nuts', 'seeds'];

Я сделал это =>

 'use strict';

let foodTray = [];
const foodTypes = ['seafood', 'nuts', 'seeds'];
for (let x = 0; x < foodTypes.length; x  ) {
  const food = foodTypes[x];
  foodTray.push(food); 
  if (foodTray.length < 5) {
    foodTray.push(food); 
  }
}
console.log('I have '   `${foodTray}.`);
  

но мне было указано, что цикл должен выполняться 5 раз *****, и я использовал длину foodTypes .

Желаемый результат должен быть => У меня есть морепродукты, морепродукты, орехи, орехи, семена.

Проблема: for (let x = 0; x < *foodTypes.length*; x ) вместо этого я сделал, цикл должен выполняться 5 раз! Я не уверен, как я могу дважды выполнить итерацию по элементу.

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

1. Не могли бы вы уточнить, в чем проблема и каков желаемый результат?

2. Ну, кажется, ваш код работает нормально, и вы получаете желаемый результат, в чем проблема?

3. вы имеете в виду добавить первые 5 дважды? если вы хотите, чтобы он выполнялся для первых 5 типов продуктов, вы можете изменить цикл for : for (пусть x = 0; x < типы продуктов. длина amp;amp; x < 5; x ) но я не уверен, что понимаю желаемый результат..

4. возможно, вы могли бы посчитать количество food в вашем foodtray и добавить его в свой if оператор? while (foodTray.length < 5 amp;amp; foodTray.filter(f => f == food).length < 2) { foodTray.push(food)}

Ответ №1:

Ваш исходный код выдает желаемый результат: у меня есть морепродукты, морепродукты, орехи, орехи, семена.

 let foodTray = [];
const foodTypes = ['seafood', 'nuts', 'seeds'];
for (let x = 0; x < foodTypes.length; x  ) {
  const food = foodTypes[x];
  foodTray.push(food); 
  if (foodTray.length < 5) {
    foodTray.push(food); 
  }
}
console.log('I have '   `${foodTray}.`);