Динамическое создание объекта javascript / jquery?

#javascript #jquery

#javascript #jquery

Вопрос:

У меня есть корзина покупок, в которую я хочу добавить элементы в объект корзины.

Вот как я хочу это сделать:

=) каждый элемент имеет уникальный идентификатор

=) ключ (идентификатор элемента) и значение (количество элемента)

 => once item is added
  

проверьте, существует ли ключ, если да, увеличьте значение (на единицу)

еще добавьте новую пару ключ-значение

  var cart ={}
 //if id exists that_id.value  1
 //else add new key value pair
  

Комментарии:

1. можете ли вы объяснить свой код и пример данных

Ответ №1:

Что-то вроде этого?

 var cart = {}

function addToCart(item_id) {
  if (item_id in cart) { // Check if already in cart
    cart[item.id]  = 1; // Increment
  }
  else { // Not present in cart
    cart[item_id] = 1; // Assign initial value
  }
}
  

Ответ №2:

Это сработает

 var cart = {};
function addItemToCart(item) { 
    if(!cart[item.item_id]) {
        cart[item.item_id] = 0;
    }
    cart[item.item_id]  ;
}
  

Ответ №3:

Если вы хотите добавить значение, используйте его следующим образом:

  var cart ={};
 
 function addEntry(key, value, cart) {
     if (cart[key] === undefined)
         cart[key] = value;
     else
         cart[key]  = value;
 }
 
 addEntry('car', 13, cart);
 addEntry('cat', 7, cart);
 addEntry('mouse', 5, cart);
 addEntry('car', 2, cart);
 addEntry('house', 1, cart);
 
 console.log(cart);  

Если требуется только увеличение на единицу:

  var cart ={};
 
 function addEntry(key, cart) {
     if (cart[key] === undefined)
         cart[key] = 1;
     else
         cart[key]  ;
 }
 
 addEntry('car', cart);
 addEntry('cat', cart);
 addEntry('mouse', cart);
 addEntry('car', cart);
 addEntry('house', cart);
 
 console.log(cart);  

Ответ №4:

Вам нужно создать addToCart функцию с 1 параметром: item — товар, который вы хотите добавить в корзину (строка)

 function addToCart(item) {
    if (cart.hasOwnProperty(item)) {
        cart[item]  ;
    } else {
        cart[item] = 1;
    }
};