Как правильно перебрать массив, что бы четные пошли в firstTeam, а не четные в secondTeam?
Несколько человек стоят рядом, разделенные на две команды. Первый человек попадает в команду 1, второй - в команду 2, третий - в команду 1 и так далее.
Реализуй функцию getRowWeights, которая принимает массив чисел (веса людей) и возвращает новый массив из двух целых чисел, где первое - общий вес команды 1, а второе - общий вес команды 2.
Примечания:
- Размер массива не менее 1.
- Все числа положительные.
Пример:
getRowWeights([10]) === [10, 0]
getRowWeights([10, 85, 90]) === [100, 85]
getRowWeights([8, 5, 9, 3]) === [17, 8]
function getRowWeights(array) {
let firstTeam = 0;
let secondTeam = 0;
const weightsTeam = [];
for (const value of array) {
firstTeam += value;
}
for (const value of array) {
secondTeam += value;
}
weightsTeam.push(firstTeam, secondTeam);
return weightsTeam;
}
Ответы (1 шт):
В вашем ответе, Вы просто пробегаете по массиву и добавляете каждое значение к общей массе первой команды. Потом делаете тоже самое для второй.
Достаточно один раз пройти по массиву. Смотреть на индекс, в данном случае, смотрим если остаток от деления на 2 равен 0 то четное, если нет - нечетное. В зависимости от условия добавляем в первую или вторую команду.
function getRowWeights(array) {
let firstTeam = 0;
let secondTeam = 0;
for (let i = 0; i < array.length; i++) {
if (i % 2 === 0) {
firstTeam += array[i];
} else {
secondTeam += array[i];
}
}
return [firstTeam, secondTeam];
}
console.log(getRowWeights([10]));
console.log(getRowWeights([10, 85, 90]));
console.log(getRowWeights([8, 5, 9, 3]));