#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}.`);