在数组中使用 parseFloat



当数据位于数组中时,如何使用parseFloat?

假设我收到这样的 api 响应:

$scope.response = [{name: "Richard", qty: "350.99"},
{name: "Chuck", qty: "199"},
{name: "Phonenix", qty: "233.77"}]

我想对qty的值求和,但我不能"导致数据类型"。如果我需要在 qty 上使用 parseFloat,我怎么能只获取这些值?

我必须使用类似 some() 的东西来获取qty值?

我正在使用AngularJs和Javascript。

您可以遍历数组并使用 Array.reduce 计算总和

const arr = [{
    name: "Richard",
    qty: "350.99"
  },
  {
    name: "Chuck",
    qty: "199"
  },
  {
    name: "Phonenix",
    qty: "233.77"
  }
];
const result = arr.reduce((sum, current) => {
  return sum + parseFloat(current.qty);
}, 0);
console.log(result);

使用 array#reduce 对数组的所有qty求和response

var response = [{name: "Richard", qty: "350.99"},{name: "Chuck", qty: "199"},{name: "Phonenix", qty: "233.77"}],
    result = response.reduce((sum, {qty}) => sum += +qty, 0);
console.log(result);

你可以为此使用 reduce:

const response = [
  {name: "Richard", qty: "350.99"},
  {name: "Chuck", qty: "199"},
  {name: "Phonenix", qty: "233.77"}
];
const sumQuantities =
  response.reduce((acc, x) =>
    acc + parseFloat(x.qty)
  , 0);
    
console.log(sumQuantities);

您可以映射数组以返回 qty 的 parseFloat,然后使用 reduce 将值相加。

var response = [{
    name: "Richard",
    qty: "350.99"
  },
  {
    name: "Chuck",
    qty: "199"
  },
  {
    name: "Phonenix",
    qty: "233.77"
  }];
var sum = response.map(function(obj) {
    return parseFloat(obj.qty);
  })
  .reduce(function(a, b) {
    return a + b;
  }, 0);
  
console.log(sum)

最新更新