简体   繁体   English

如何对 JavaScript 中的内部数组表的一列中的所有值求和?

[英]How to sum all the values in one column of an inner array table in JavaScript?

I have a fairly simple set of data which has an inner array stored in a variable named finances.我有一组相当简单的数据,它有一个存储在名为 finances 的变量中的内部数组。 The first array element is a header row of Month and Amount.第一个数组元素是 header 行的月份和金额。

I need to calculate a sum of all the amounts.我需要计算所有金额的总和。 Where do I start?我从哪里开始?

var finances = [
['Month', 'Amount'],
['Jan-2010', 867884],
['Feb-2010', 984655],
['Mar-2010', 322013],
['Apr-2010', -69417],
['May-2010', 310503],
['Jun-2010', 522857],
['Jul-2010', 1033096],
['Aug-2010', 604885],
['Sep-2010', -216386],
['Oct-2010', 477532],
['Nov-2010', 893810],
['Dec-2010', -80353],
['Jan-2011', 779806],
['Feb-2011', -335203],
['Mar-2011', 697845],
['Apr-2011', 793163],
['May-2011', 485070],
['Jun-2011', 584122],
['Jul-2011', 62729],
['Aug-2011', 668179],
['Sep-2011', 899906],
['Oct-2011', 834719],
['Nov-2011', 132003],
['Dec-2011', 309978],
['Jan-2012', -755566],
['Feb-2012', 1170593],
['Mar-2012', 252788],
['Apr-2012', 1151518],
['May-2012', 817256],
['Jun-2012', 570757],
['Jul-2012', 506702],
['Aug-2012', -1022534],
['Sep-2012', 475062],
['Oct-2012', 779976],
['Nov-2012', 144175],
['Dec-2012', 542494],
['Jan-2013', 359333],
['Feb-2013', 321469],
['Mar-2013', 67780],
['Apr-2013', 471435],
['May-2013', 565603],
['Jun-2013', 872480],
['Jul-2013', 789480],
['Aug-2013', 999942],
['Sep-2013', -1196225],
['Oct-2013', 268997],
['Nov-2013', -687986],
['Dec-2013', 1150461],
['Jan-2014', 682458],
['Feb-2014', 617856],
['Mar-2014', 824098],
['Apr-2014', 581943],
['May-2014', 132864],
['Jun-2014', 448062],
['Jul-2014', 689161],
['Aug-2014', 800701],
['Sep-2014', 1166643],
['Oct-2014', 947333],
['Nov-2014', 578668],
['Dec-2014', 988505],
['Jan-2015', 1139715],
['Feb-2015', 1029471],
['Mar-2015', 687533],
['Apr-2015', -524626],
['May-2015', 158620],
['Jun-2015', 87795],
['Jul-2015', 423389],
['Aug-2015', 840723],
['Sep-2015', 568529],
['Oct-2015', 332067],
['Nov-2015', 989499],
['Dec-2015', 778237],
['Jan-2016', 650000],
['Feb-2016', -1100387],
['Mar-2016', -174946],
['Apr-2016', 757143],
['May-2016', 445709],
['Jun-2016', 712961],
['Jul-2016', -1163797],
['Aug-2016', 569899],
['Sep-2016', 768450],
['Oct-2016', 102685],
['Nov-2016', 795914],
['Dec-2016', 60988],
['Jan-2017', 138230],
['Feb-2017', 671099]
];

//Make the inner array into a table
console.table(finances);

// Count the number of rows in the table, and subtract 1 for the header row
var NumberOfMonths = finances.length - 1;
console.log(NumberOfMonths);

I used the table(finances) in the console to see that the data is appropriate to find a sum.我使用控制台中的表(财务)来查看数据是否适合求和。 I also did a NumberOfMonths variable to check that all parts of the data are included in the array.我还做了一个 NumberOfMonths 变量来检查数据的所有部分是否都包含在数组中。

 var finances = [ ['Month', 'Amount'], ['Jan-2010', 867884], ['Feb-2010', 984655], ['Mar-2010', 322013], ['Apr-2010', -69417], ['May-2010', 310503], ['Jun-2010', 522857], ['Jul-2010', 1033096], ['Aug-2010', 604885], ['Sep-2010', -216386], ['Oct-2010', 477532], ['Nov-2010', 893810], ['Dec-2010', -80353], ['Jan-2011', 779806], ['Feb-2011', -335203], ['Mar-2011', 697845], ['Apr-2011', 793163], ['May-2011', 485070], ['Jun-2011', 584122], ['Jul-2011', 62729], ['Aug-2011', 668179], ['Sep-2011', 899906], ['Oct-2011', 834719], ['Nov-2011', 132003], ['Dec-2011', 309978], ['Jan-2012', -755566], ['Feb-2012', 1170593], ['Mar-2012', 252788], ['Apr-2012', 1151518], ['May-2012', 817256], ['Jun-2012', 570757], ['Jul-2012', 506702], ['Aug-2012', -1022534], ['Sep-2012', 475062], ['Oct-2012', 779976], ['Nov-2012', 144175], ['Dec-2012', 542494], ['Jan-2013', 359333], ['Feb-2013', 321469], ['Mar-2013', 67780], ['Apr-2013', 471435], ['May-2013', 565603], ['Jun-2013', 872480], ['Jul-2013', 789480], ['Aug-2013', 999942], ['Sep-2013', -1196225], ['Oct-2013', 268997], ['Nov-2013', -687986], ['Dec-2013', 1150461], ['Jan-2014', 682458], ['Feb-2014', 617856], ['Mar-2014', 824098], ['Apr-2014', 581943], ['May-2014', 132864], ['Jun-2014', 448062], ['Jul-2014', 689161], ['Aug-2014', 800701], ['Sep-2014', 1166643], ['Oct-2014', 947333], ['Nov-2014', 578668], ['Dec-2014', 988505], ['Jan-2015', 1139715], ['Feb-2015', 1029471], ['Mar-2015', 687533], ['Apr-2015', -524626], ['May-2015', 158620], ['Jun-2015', 87795], ['Jul-2015', 423389], ['Aug-2015', 840723], ['Sep-2015', 568529], ['Oct-2015', 332067], ['Nov-2015', 989499], ['Dec-2015', 778237], ['Jan-2016', 650000], ['Feb-2016', -1100387], ['Mar-2016', -174946], ['Apr-2016', 757143], ['May-2016', 445709], ['Jun-2016', 712961], ['Jul-2016', -1163797], ['Aug-2016', 569899], ['Sep-2016', 768450], ['Oct-2016', 102685], ['Nov-2016', 795914], ['Dec-2016', 60988], ['Jan-2017', 138230], ['Feb-2017', 671090] ]; let numOr0 = n => isNaN(n)? 0: n console.log( finances.reduce((a, b) => numOr0(a) + numOr0(b[1])) )

try this solution - it's just an example of how to do it试试这个解决方案 - 这只是一个如何做的例子

Try this:试试这个:

finances.slice(1).reduce((sum, arr) => sum + arr[1], 0);

Just iterate through the inner arrays and calculate the sum of the second elements.只需遍历内部 arrays 并计算第二个元素的总和即可。

function sumAmount(finance){
    let sum = 0;
    for (let row of finance){
        sum += row[1];
    }
    return sum;
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM