Задать вопрос
@kuzubina

Как перемножить элементы массива?

Есть массив такого вида:

array_params_values: [
  { name: 'толщина',  values: 4 },
  { name: 'ширина',  values: 1500 },
  { name: 'длина',  values: 6000 },
],

Как лучше всего перемножить между собой все значения values?
  • Вопрос задан
  • 458 просмотров
Подписаться 1 Простой Комментировать
Решения вопроса 1
0xD34F
@0xD34F Куратор тега JavaScript
const result = arr.reduce((acc, n) => acc * n.values, 1);

или

const result = eval(arr.map(n => n.values).join('*')) ?? 1;

или

let result = 1;
for (const { values: n } of arr) {
  result *= n;
}

или

let result = 1;
for (let i = 0; i < arr.length; i++) {
  result = result * arr[i].values;
}

или

const result = (function mul(i) {
  return i >= arr.length
    ? 1
    : arr[i].values * mul(-~i);
})(0);
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@rPman
array_params_values[0].values*array_params_values[1].values*array_params_values[2].values
И это оправдано, потому что в массиве известно заранее сколько будет элементов. Если это станет не так (не будет элемента) - вылезет ошибка, да можно дополнительно проверить количество.

p.s. отвратительно выбран способ хранения параметров и имена.
Не надо хранить так, так как чтобы добраться до значения по имени нужно будет перебирать весь массив.
Пользуйся key-value объектами в java, их можно менять на ходу, работать удобно, быстро (можно new Map() использовать оно еще быстрее)
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы