Сумма значений одной переменной массива
Всем привет. Не являюсь разработчиком, решаю прикладные задачи как маркетолог. Поэтому рассмотрю решение моего вопроса за оплату. Можете написать в ЛС
У меня есть массив из N-го количества товаров:
ecommerce: {
currency: "RUB",
value: "1000.00",
items: [
{
item_id: 10793,
item_name: "Товар №1",
item_brand: "",
price: 500,
item_category: "Книги",
quantity: 1,
id: "10793"
},
{
item_id: 13372,
item_name: "Товар №2",
item_brand: "",
price: 500,
item_category: "Книги",
quantity: 1,
id: "13372"
}
]
}
У меня в этом коде есть для каждого товара переменная quantity, которая отображает кол-во товаров конкретного наименования. На выходе мне требуется получить общую сумму всех товаров. В данном случае 1+1 = 2 Если чуть подробнее, то решение необходимо на ECMASCRIPT 5 и ниже, последней версии не подойдет. У меня есть сайт (интернет-магазин), и там есть корзина с товарами. Вот мне нужно quantity вытаскивать для всех товаров и записывать в отдельную переменную. Если пользователь добавил 5 товаров в корзину, то quantity = 5, если 2, то 2. Соответственно, массив одинаковый, отличается только кол-вом товаров в нем, а все переменные одинаковые, и везде есть quantity. Мне нужно прогнать по коду, найти кол-во quantity, их значения и просуммировать. Если было бы: Товар №1 - quantity 1 Товар №2 - quantity 2 То результат переменной должен быть 3 Спасибо |
Нашел решение сам!
function Quantity() {
var items = ecommerce / ..... /;
for(var i = 0, res = 0; i < items.length; i++) {
res += items[i].quantity;
}
return res;
}
var result = Quantity();
|
Нашел еще вот такое решение:
function(){
var prods = {{ecommerce.items}};
var i;
var sum = 0;
if (!prods) { return; }
for (i = 0; i < prods.length; i++) {
sum +=parseInt((prods[i].quantity))
}
return sum;
}
Только проблема заключается в том, что массив может иметь два формата. Либо items:
items: [
{
id: 10793,
name: "Товар №1",
sku: 10793,
price: 24900,
stocklevel: null,
quantity: 1
},
{
id: 13372,
name: "Товар №2",
sku: 13372,
price: 700,
stocklevel: null,
quantity: 1
}
]
},
Либо products:
products: [
{
id: 10793,
name: "Товар №1",
sku: 10793,
price: 24900,
stocklevel: null,
quantity: 1
},
{
id: 13372,
name: "Товар №2",
sku: 13372,
price: 700,
stocklevel: null,
quantity: 1
}
]
},
И вот как написать универсальный код для того, чтобы считало quantity и для products [] и для items [], нет идей, потому как в var prods подставляю или ecommerce.items или ecommerce.products |
var prods = ecommerce.items || ecommerce.products;
Что означают {{ }} в var prods = {{ecommerce.items}}; ? Зачем parseInt в sum +=parseInt((prods[i].quantity)); и внутренние скобки? |
| Часовой пояс GMT +3, время: 19:34. |