@microf

Как найти, есть ли элемент в массиве?

Основы основ. Делаю добавление в "корзину"
var     ProductsList = [],
                Cart = function (id, name) {
                    this.id = id;
                    this.name = name;
                };

  function addProduct(id, name) {

            var newItem = new Cart(id, name);
               ProductList.push(newItem);
                                   }

Нужно, чтобы если элемент с id уже есть в Cart - то не добавлять (ну return сделать). Как понимаю, можно для этого использовать
angular.forEach(Cart, function(id) {
// и вот здесь понять не могу как сравнить приходящий id с Cart.id
}
  • Вопрос задан
  • 253 просмотра
Решения вопроса 1
In4in
@In4in
°•× JavaScript Developer ^_^ ו°
var ProductsList = [],
      Cart = function (id, name) {
           this.id = id;
           this.name = name;
       }
;

function addProduct(id, name) {
      ProductsList.some(function(e){
         return e.id == id;
      })||ProductsList.push(new Cart(id, name));
}
Ответ написан
Пригласить эксперта
Ответы на вопрос 3
@Stopy
Вставляй не в массив, а в другой объект, типо вот так { id: {name: name} }, а проверка на существование в корзине сама собой решится
Ответ написан
Комментировать
profesor08
@profesor08 Куратор тега JavaScript
Согласно документации angular.forEach, перебор элементов должен выглядеть так для вашего примера.
angular.forEach(ProductsList, function(value, key) {

}
Ответ написан
Комментировать
@EvgenZZ
php, javascript developer
Underscore. Js underscorejs.ru/#arrays
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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