在Javascript中,将所有值作为一个数组列表返回

return all values as one with a list of arrays in Javascript

本文关键字:一个 返回 列表 数组 Javascript      更新时间:2023-09-26

注意:我一直在网上寻找,尽管我找不到我想要的答案,但我很确定它在那里,所以如果有答案,请转发给我。对不起,如果有双重邮件的话。

嗨,我正在尝试获取数组列表中一个键的值。我的目标是得到一个"列"的总和

例如:

这是我的阵列列表

var total = 0;
var dataset= [
    {"cost" : 5.00 , "name" : "Victor" },
    {"cost" : 6.00 , "name" : "Jack" },
    {"cost" : 7.00 , "name" : "Bill" },
    {"cost" : 8.00 , "name" : "Delilah" },
    {"cost" : 9.00 , "name" : "Robert" },
    {"cost" : 10.00 , "name" : "Marisa" }
]

有没有办法一次得到所有成本字段的总和。或者有没有一种方法可以一次性将成本值显示为一个数组?

如果我得到成本字段的所有值,我希望它看起来像这样:

[5.00,6.00,7.00,8.00,9.00,10.00]

如果有一个我不知道的内置函数,那么我会得到这个:

total = dataset["cost"].sum(); <-- pseudo code
console.log(total) //would print 45

我想避免在数据集的每个索引中循环

提前感谢

您不需要迭代!您可以使用JavaScript为我们提供的方便的过程!

要检索所有costs的总和,可以执行以下操作。。。

function sums( array ) {
    return array.reduce(function(last, current) { return last + current['cost'] });
}

传入dataset以获得总和。

无论如何,您都需要遍历数组。你可以通过阵列来实现。减少

var result = dataset.reduce(function(sum, current) {
  return sum + current.cost;
}, 0);

您可以使用Array.prototype.reduce:对数组中的所有值求和

var total=[0, 1, 2, 3, 4].reduce(function(previousValue, currentValue, currentIndex, array) {
  return previousValue + currentValue;
});
console.log(total)

Lodash让这一切变得简单:

return _.sum(_.pluck(dataset, 'cost'))