Я пытаюсь создать корзину с помощью js
function fuBuyNow() {
var prodqty = 1;
var prodid = localStorage.ls_productID;
var prodprice = $('#ppriceoffer').html();
var cartItem = {
productid: prodid,
productqty: prodqty,
productprice: prodprice
};
var cartItemJSON = JSON.stringify(cartItem);
console.info(cartItemJSON);
var cartArray = new Array();
// If javascript shopping cart session is not empty
if (localStorage.getItem('shopping-cart')) {
cartArray = JSON.parse(localStorage.getItem('shopping-cart'));
}
cartArray.push(cartItemJSON);
var cartJSON = JSON.stringify(cartArray);
localStorage.setItem('shopping-cart', cartJSON);
}
теперь у меня есть данные корзины в массиве, я хочу суммировать productid
= 10005, productid
= 10001 цену и создать новый массив
var obj = "[{"slno":"1","productid":"10001","qty":"1","price":"250"},{"slno":"2","productid":"10005","qty":"1","price":"350"},{"slno":"3","productid":"10001","qty":"1","price":"250"},{"slno":"4","productid":"10003","qty":"1","price":"450"},{"slno":"5","productid":"10005","qty":"1","price":"350"}]";
🤔 А знаете ли вы, что...
JavaScript позволяет создавать динамические и интерактивные веб-приложения.
Вы можете добиться этого, используя методы массива JavaScript вместе с jQuery, если вы работаете с элементами DOM. Вот как вы можете это сделать:
var obj = [{"slno":"1","productid":"10001","qty":"1","price":"250"},{"slno":"2","productid":"10005","qty":"1","price":"350"},{"slno":"3","productid":"10001","qty":"1","price":"250"},{"slno":"4","productid":"10003","qty":"1","price":"450"},{"slno":"5","productid":"10005","qty":"1","price":"350"}];
// Filter the array to get only the items with productid = 10005 or productid = 10001
var filteredArray = obj.filter(function(item) {
return item.productid === "10005" || item.productid === "10001";
});
// Calculate the total price
var totalPrice = filteredArray.reduce(function(acc, item) {
return acc + parseInt(item.price);
}, 0);
// Create a new array with the total price
var newArray = [{ "totalPrice": totalPrice }];
console.info(newArray);
Этот код фильтрует исходный массив, чтобы включить только товары с идентификатором продукта, равным «10005» или «10001», затем вычисляет общую цену этих товаров и, наконец, создает новый массив с общей ценой. Вы можете использовать этот newArray для отображения или управления общей ценой по мере необходимости. Если у вас есть дополнительные вопросы, не стесняйтесь спрашивать!
Обновление 1:
var obj = [
{"slno":"1","productid":"10001","qty":"1","price":"250"},
{"slno":"2","productid":"10005","qty":"1","price":"350"},
{"slno":"3","productid":"10001","qty":"1","price":"250"},
{"slno":"4","productid":"10003","qty":"1","price":"450"},
{"slno":"5","productid":"10005","qty":"1","price":"350"}
];
var aggregatedArray = [];
obj.forEach(function(item) {
var existingItem = aggregatedArray.find(function(aggregatedItem) {
return aggregatedItem.productid === item.productid;
});
if (existingItem) {
existingItem.qty = parseInt(existingItem.qty) + 1;
existingItem.price = parseInt(existingItem.price) + parseInt(item.price);
} else {
aggregatedArray.push({
slno: item.slno,
productid: item.productid,
qty: item.qty,
price: item.price
});
}
});
var newArray = JSON.stringify(aggregatedArray);
console.info(newArray);
попробуй это