javascript - 将每个动态创建的数组中的第一项添加到一起

标签 javascript arrays

下面是我的数据结构;

{
    "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)

目前,这会将其输出到控制台;

enter image description here

因此,目前此脚本正在记录按国家/地区索引的每个问题的值。

我想把这个数组中的每一项加在一起。因此,根据这个输出,我想做以下补充;

29 + 49 + 89,

78 + 86 + 96,

80 + 43 + 11

我不确定我该怎么做?

我认为也许使用 .pop()/.shift() 3 次可能有效,或者只使用 [0]、[1]、[2]。但是,在返回数组中的单个项目后,我不确定如何将 3 个数组数字加在一起?

希望一切都清楚,非常感谢任何帮助/建议!

Plunk Here

最佳答案

您也可以使用数组对项目进行求和和迭代。

基本上这个提案使用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/

相关文章:

C - fopen() 的相对路径

javascript - 谷歌浏览器不尊重缓存控制中的最大年龄

javascript - 获取 div 中的所有元素并使用 Tab 键在该 div 中导航这些元素

java - 打印数组时如何去掉groovy中的括号和逗号

c# - 根据大写字母的位置对字符串数组进行排序

javascript - 2D Javascript 数组类型错误

javascript - Bootstrap 选项卡标题元素中的复杂 html

javascript - 改变 ng-repeat Angularjs 内部的行为

javascript - 使用折叠 UI 显示表单的某些部分

c - C 中数组的元素在创建数组后初始化为什么?