Вы можете рассмотреть возможность использования .reduce
- на каждой итерации добавьте первое значение массива к свойству аккумулятора и сделайте все, что вам нужно со вторым значением массива, присваивая его результат другому свойству аккумулятора.Например, скажем, для вторых предметов вы хотели получить их товар:
const input = [[1,0],[3,3],[2,1],[0,8]];
const { sum, product } = input
.reduce(({ sum=0, product=1 }, [item0, item1]) => ({
sum: sum + item0,
product: product * item1
}), {});
console.log(sum, product);
В приведенном выше коде аккумулятор является объектом с двумя свойствами: sum
(начинается с 0) и product
(начинается с 1).Внутри reduce
возвращается объект, новый sum
является старым sum
плюс первый элемент в массиве, а новый product
является старым product
, умноженным на второй элемент вмассив.(конечно, результат равен 0, потому что в первом подмассиве второй элемент равен 0)
Также обратите внимание, что массивам всегда нужны запятые, разделяющие каждый элемент массива - вам нужно исправить синтаксис входного массива.
Конечно, вы также можете for
циклы, если нужно, но я думаю, что методы массива предпочтительнее, потому что они более функциональны, имеют лучшую абстракцию и не требуют ручной итерации.Тот же код с циклом for
будет выглядеть так:
const input = [[1,0],[3,3],[2,1],[0,8]];
let sum = 0;
let product = 1;
for (let i = 0; i < input.length; i++) {
const [item0, item1] = input[i];
sum += item0;
product *= item1;
}
console.log(sum, product);