Array Map Weight

Map an array for weight and return the total combined weight of all items

by wholypantalones

HTML

<div ng-app="ctrl" ng-controller="mindCtrl">
{{new}} lbs
</div>

JavaScript

angular.module("ctrl", []).controller("mindCtrl", function($scope) {
  var cart = {
    "cartId": 46,
    "cartIdentifier": "MTQ4OTA3NTg5NDEwNS0yNQ==",
    "linesCount": 1,
    "lineItemsQtyTotal": 1,
    "subtotal": 49.39,
    "createDate": 1489075894105,
    "lastUpdateDate": 1489075894105,
    "lastAccessDate": 1489075924694,
    "orderNumber": "20170309-1111-769",
    "cartExpirationDate": 1496848324694,
    "cartConfig": {
      "maxUniqueItemsAllowed": 50,
      "maxQtyPerItemAllowed": 999,
      "maxInactiveDaysAllowed": 90
    },
    "cartItems": [{
      "itemId": 59,
      "externalId": "2BCA8CD363297ED2262A1B49427A7F36",
      "externalIdLabel": "awsin",
      "cwLineCd": "PQP",
      "partNumber": "BR900602",
      "brandLabel": "Proven Quality",
      "partDescription": "BRAKE ROTOR",
      "orderQty": 1,
      "itemPriceEach": 49.39,
      "canBeShipped": true,
      "itemWeightEach": 17.9,
      "createDate": 1489075894105,
      "lastUpdateDate": 1489075894105,
      "extendedCost": 49.39
    },{
      "itemId": 59,
      "externalId": "2BCA8CD363297ED2262A1B49427A7F36",
      "externalIdLabel": "awsin",
      "cwLineCd": "PQP",
      "partNumber": "BR900602",
      "brandLabel": "Proven Quality",
      "partDescription": "BRAKE ROTOR",
      "orderQty": 1,
      "itemPriceEach": 49.39,
      "canBeShipped": true,
      "itemWeightEach": 14.9,
      "createDate": 1489075894105,
      "lastUpdateDate": 1489075894105,
      "extendedCost": 49.39
    }]
  }

  var newCart = Array.prototype.map.call(cart.cartItems, function(obj) {
    return obj.itemWeightEach;
  });
  
  var sum = newCart.reduce((a, b) => a + b, 0);

  $scope.new = sum;
});