@xmentor

Как проверить наличие объекта в массиве?

Добрый день!

Каким образом можно проверить наличие объекта в массиве?

При клике добавляю товар в массив заказа, проблема в том что при повторном клике на этом же товаре он добавляется в массив еще раз, как можно проверить существует он в массиве или нет?

addOrderList: function(index) {
            var product = this.products[index];
            this.order.orderList.push({product: product, count:1});
        }
  • Вопрос задан
  • 3673 просмотра
Решения вопроса 1
In4in
@In4in
°•× JavaScript Developer ^_^ ו°
Можно проверить по совпадению значений свойств:
var productBox = [{product: "Рыба", count: 10}];

function addTo(product, count){
   var cond = productBox.some(function(e){ 
        return e.product == product;
   });

   if(cond){
      alert("Такой продукт уже есть");
      //Но лучше просто увеличивать count у продукта
   }else{
      productBox.push({product:product, count:count});
   }
}

addTo("Водка", 5);
addTo("Мясо", 3);
addTo("Шампур", 10);
addTo("Водка", 22);
Ответ написан
Пригласить эксперта
Ответы на вопрос 3
@amatory10
объекты можно сравнивать например используя: JSON.stringify(object)
Ответ написан
Комментировать
vawsan
@vawsan
Frontend Developer
Для сравнения объектов в JS нет спец функций.
Можно использовать что-нибудь типа:
https://github.com/rikkimongoose/JSonCmp/

Если точно знаете положение объекта в массиве - сравниваете только его, если нет - то по всему массиву выуживаете объекты и их сравниваете с входящим.
Ответ написан
Комментировать
@EvgenZZ
php, javascript developer
Underscore. Js
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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