在计算中使用array.length

时间:2016-03-22 08:02:11

标签: javascript angularjs

我试图弄清楚这是否可行,在javascript中

我有一个名为cart的对象数组,其中包含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>
&#13;
&#13;
&#13;

4 个答案:

答案 0 :(得分:3)

您正在添加undefined,这会产生NaN。您应该将totalInCart初始化为0

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

答案 1 :(得分:0)

您在此处使用 First select xpath of radio button which you want to select,then use click(), enable it and display by using isEnabled and isDisplayed ,这会为ng-show的每个值调用方法getCartTotals

cart.length只需通过切换css来隐藏/显示,但ng-show如果条件为false则不会呈现HTML,因此不执行ng-if

所以你可以使用getCartTotals或者你可以在ng-ifgetCartTotals

cart.length方法中进行空/未定义的检查

答案 2 :(得分:0)

实际上我不知道您的购物车对象structure.According是否提供了有关购物车对象的信息我在plunker中创建了一个演示。所以你可以查看下面的plunker链接     https://plnkr.co/edit/4tYc9UjrzqQXvFJuvW5Y?p=preview

答案 3 :(得分:0)

我找到了答案,那就是我试图完全使用错误的周长进行计算,并且与数组的长度无关,因此整个问题现在无效,感谢所有有用的评论。