【发布时间】:2018-09-21 00:38:43
【问题描述】:
我正在使用一个包含 38 个字段的 JSON 数组,我必须对每个字段求和。
我尝试了一个小样本集来测试我是如何遇到问题的:
我有名为 field1、field2、...的变量。所以我想出了如何创建它们,但看起来它将变量视为文本而不是其中的值。
test1 = [[36,1500,2,3,4],[36,15,2,7,8],[36,3000,4,5,6],[36,8,7,6,15]]
for (var i = 0; i < test1.length; i++) { //get each array
for (var n = 0; n < 5; n++) { //get each item in the array
var theField = "field" + n;
theField = theField +test1[i][n]; //This fails
field2 = field2 + test1[i][2]; //This works
如果我使用field + n创建变量,最后的总和值为0,
如果我在循环结束时调用 field2 = field2 + test1[i][2],我将得到每个数组中第三个值的总和。但是我必须硬编码 field1 -> field38。
【问题讨论】:
-
您是在寻找所有数组中所有元素的总和,还是每个子数组的总和?
-
您似乎正在尝试使用一个变量来保存另一个变量的名称。这是错误的想法。当您走错路时,您应该显示其余代码(包括您的命名变量)。
-
我有一个包含许多数组的数组,我通过第一个元素过滤真实的数组以获取所有 2017 年的记录,然后每个子数组中有 38 个元素,我需要得到总和所有第二个元素,第三个元素,第四个元素......
-
你是否将第 2+3+4 个元素加在一起(例如,arr1[1]+arr1[2]…arr1[n])得到总和?或者你是按指数求和吗? arr1[2]+arr2[2]…arrN[2]
-
@BillChappell 查看下面的答案,解决了这两种情况
标签: javascript arrays json