下面是我的数据结构;
{
"questions": ["Large choice of food", "Food quality", "Food freshness"],
"countries": ["Netherlands", "Belgium", "France"],
"values": [
[
[5, 88, 18],
[50, 83, 10],
[29, 78, 80]
],
[
[46, 51, 61],
[95, 21, 15],
[49, 86, 43]
],
[
[7, 46, 92],
[54, 94, 31],
[89, 96, 11]
]
]
}
这是我的排序脚本;
function calculateTotals() {
var countryS = "France"
var country = data.countries.indexOf(countryS);
var values
for (var question= 0; question < data.questions.length; question++) {
// get the values for the question/country
values = data.values[question][country];
console.log(values)
目前,这会将其输出到控制台;
因此,目前此脚本正在记录按国家/地区索引的每个问题的值。
我想把这个数组中的每一项加在一起。因此,根据这个输出,我想做以下补充;
29 + 49 + 89,
78 + 86 + 96,
80 + 43 + 11
我不确定我该怎么做?
我认为也许使用 .pop()/.shift() 3 次可能有效,或者只使用 [0]、[1]、[2]。但是,在返回数组中的单个项目后,我不确定如何将 3 个数组数字加在一起?
希望一切都清楚,非常感谢任何帮助/建议!
最佳答案
您也可以使用数组对项目进行求和和迭代。
基本上这个提案使用Array#forEach
.
The
forEach()
method executes a provided function once per array element.
function calculateTotals() {
var countryS = "France",
country = data.countries.indexOf(countryS),
sum = [];
data.values.forEach(function (question) {
question[country].forEach(function (a, i) {
sum[i] = (sum[i] || 0) + a;
});
});
console.log(sum);
}
var data = { "questions": ["Large choice of food", "Food quality", "Food freshness"], "countries": ["Netherlands", "Belgium", "France"], "values": [[[5, 88, 18], [50, 83, 10], [29, 78, 80]], [[46, 51, 61], [95, 21, 15], [49, 86, 43]], [[7, 46, 92], [54, 94, 31], [89, 96, 11]]] };
calculateTotals();
关于javascript - 将每个动态创建的数组中的第一项添加到一起,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37905523/