Использование array.length в расчетах

0

Я пытаюсь выяснить, возможно ли это, в javascript

У меня есть массив объектов, называемых тележками, которые содержат product.quantity, и я хочу использовать значение cart.length в вычислении, но я продолжаю получать NaN, хотя тип - это число. Может ли кто-нибудь помочь, пожалуйста.

Это то, что я пробовал до сих пор:

$scope.getCartTotals = function() {
  var totalInCart = 0;

  cartCount = $scope.cart.length;
  $scope.cart.forEach(function(product) {
    totalInCart += cartCount * product.quantity;
  });

  return totalInCart;
};
<body ng-controller="StoreController">
  <div ng-show="cart.length > 0">{{getCartTotals()}}</div>
</body>
  • 1
    Тыр для инициализации totalInCart . Т.е.: var totalInCart = 0
  • 0
    спасибо, я снова провела рефакторинг кода, опубликую, все еще не достиг желаемого результата
Показать ещё 1 комментарий
Теги:

4 ответа

3

Вы добавляете к undefined, что делает NaN. Вы должны инициализировать totalInCart в 0:

var total = 0,
    cartCount = $scope.cart.length,
    totalInCart = 0;
0

Я нашел ответ, и это было то, что я пытался вычислить с использованием неправильных периметров целиком и не имел никакого отношения к длине массива, поэтому весь этот вопрос теперь недействителен, спасибо за все полезные комментарии.

0

На самом деле я не имею представления о вашей телеге объекта structure.According к предоставленной информации об объекте корзины я создал дем в plunker. Таким образом, вы можете проверить ниже ссылку plunker https://plnkr.co/edit/4tYc9UjrzqQXvFJuvW5Y?p=preview

0

Вы используете ng-show здесь, это вызовет метод getCartTotals для каждого значения cart.length.

ng-show просто скрыть/отобразить, переключая css, но ng-if не будет отображать HTML, если условие ложно и, следовательно, не getCartTotals выполнение getCartTotals

Таким образом, вы можете использовать либо ng-if или вы можете просто сделать нуль/неопределенные проверки в getCartTotals метода cart.length и product.quantity

  • 0
    Спасибо, это помогает не показывать элемент, если 0, но расчет больше моя проблема
  • 0
    Супер. Вы можете просто подтвердить, если ответ помог вам, когда у вас есть достаточная репутация.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню