当数据位于数组中时,如何使用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)