Сумма значений одной переменной массива
Всем привет. Не являюсь разработчиком, решаю прикладные задачи как маркетолог. Поэтому рассмотрю решение моего вопроса за оплату. Можете написать в ЛС
У меня есть массив из 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, время: 01:21. |