javascript - 如何在 Angular JS 中对对象数组内的货币值求和

标签 javascript angularjs arrays

我有一个来自 API 调用的返回对象数组。对象结构看起来像这样..

enter image description here

像这样,数组可以包含n个对象。

我要做的是..总结所有对象的selectedMapping.cost的所有值并显示总和。

但有一个问题是成本可能有点棘手。

它们的格式可以是 .30 或 978 等,我们必须分别假设 0.30 和 978.00。它们也可以为 null 或未定义,在这种情况下我们必须将其默认为 0.0

如何在 Angular JS 中实现求和?如何处理适当的转换并显示总和?

最佳答案

这似乎是使用reduce的好时机

const data = [
  {
    selectedMapping: {
      cost: ".30"
    }
  },
  {
    selectedMapping: {
      cost: "200"
    }
  },
  {
    selectedMapping: {
      cost: ".60"
    }
  },
  {
    selectedMapping: {
      cost: ".22"
    }
  },
  {
    selectedMapping: {
      cost: null
    }
  }];
  

const sumCost = (data) =>
  data.reduce(
    (cost, entry) => 
      cost + (parseFloat(entry.selectedMapping.cost) || 0), 
    0
  )
  

console.log(sumCost(data))

关于javascript - 如何在 Angular JS 中对对象数组内的货币值求和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42291161/

相关文章:

javascript - 以编程方式旋转要素 Open Layers

javascript - ng-mouseover 和 ng-show 不起作用

javascript - 单击添加边框样式以及将元素添加到购物车

c - 如何将空格分隔的 float 从字符串中提取到 c 中的另一个数组中?

c - a[][] 和 (*a)[] 不等同于函数参数吗?

javascript - 触发单击“保存到驱动器”按钮

javascript - Handsontable 对于我的 JSON 返回空白。我如何解决它?

javascript - 如何使 javascript 字符串成为函数调用

java - 从数组中返回不为空的值。 java

javascript - 限制相机在 Y 轴上的旋转