igor-fedorov
@igor-fedorov
Full Stack разработчик

Как посчитать количество в json файле?

var myObject = {
    "items": {
        "1": {
            "SIMPLE_BASKET_TITLE": "Привет, мир!",
            "SIMPLE_BASKET_QUO": 3,
            "SIMPLE_BASKET_PRICE": 0,
            "SIMPLE_BASKET_CATEGORY": "Без рубрики"
        },
        "4": {
            "SIMPLE_BASKET_TITLE": "Смартфон Microsoft Lumia 640",
            "SIMPLE_BASKET_QUO": "29",
            "SIMPLE_BASKET_PRICE": 10000,
            "SIMPLE_BASKET_CATEGORY": "Каталог"
        },
        "6": {
            "SIMPLE_BASKET_TITLE": "Силиконовый чехол для Lumia 640",
            "SIMPLE_BASKET_QUO": 5,
            "SIMPLE_BASKET_PRICE": 100,
            "SIMPLE_BASKET_CATEGORY": "Каталог"
        }
    },
    "userName": "admin",
    "userEmail": "iamfedoroff@yandex.ru",
    "userPhone": "",
    "userComment": "",
    "errorMessages": []
};

Есть вот такая штукенция. Как можно посчитать все "SIMPLE_BASKET_QUO" и "SIMPLE_BASKET_PRICE", если количество items может быть любым. Заранее благодарен каждому за ответ
  • Вопрос задан
  • 2516 просмотров
Пригласить эксперта
Ответы на вопрос 2
surefire
@surefire
var total = Object.keys(myObject.items).reduce( (total, key) => {

	var item = myObject.items[key];

	total.q += item.SIMPLE_BASKET_QUO | 0;
	total.a += item.SIMPLE_BASKET_QUO * item.SIMPLE_BASKET_PRICE;

	return total;
	
}, { q: 0, a: 0 } );

console.log(total);
Ответ написан
Комментировать
Immortal_pony
@Immortal_pony Куратор тега JavaScript
Если интересует только количество и объект "item" неизменен, то так:
Object.keys(myObject.items).length

Если же интересует какая-то более сложная логика, то, например, так:
var fullCost = 0;

for (itemIndex in myObject.items) {
    var item = myObject.items[itemIndex];
    var quantity = (typeof item.SIMPLE_BASKET_QUO !== 'undefined' ? Number(item.SIMPLE_BASKET_QUO) : 0);
    var price = (typeof item.SIMPLE_BASKET_PRICE !== 'undefined' ? Number(item.SIMPLE_BASKET_PRICE) : 0);

    fullCost += quantity*price;
}
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы