簡體   English   中英

如何為包含多個元素的數組創建for循環?

[英]How to create a for loop for an array with multiple elements?

我是一名學習JavaScript的學生,所以我的知識並不復雜,所以請保持溫和。 :)

我得到了:

var region1 = [1540, 1130, 1580, 1105];
var region2 = [2010, 1168, 2305, 4102];

var region3 = [2450, 1847, 2710, 2391];

var region4 = [1845, 1491, 1284, 1575];

var region5 = [2120, 1767, 1599, 3888];

括號中的每個數字代表該季度的數字。 我需要給出循環來總結每個區域(加法)和每個區域(在列中添加)的銷售額。 我理解如何做單項數組。 例如:

var sum=0;
for (var i = 0; i < totals.length; i++) {
sum += totals [i];
}

先謝謝你。

我不確定你是不是這樣,但我認為你想要在所有五個地區的總銷售額為四分之一;

 var regions = { region1:[1540, 1130, 1580, 1105], region2:[2010, 1168, 2305, 4102], region3:[2450, 1847, 2710, 2391], region4:[1845, 1491, 1284, 1575], region5:[2120, 1767, 1599, 3888] }; var totalPerRegion = 0, quarter1 = 0, quarter2 = 0, quarter3 = 0, quarter4 = 0; for(region in regions){ // calculate the sales per quarters; quarter1 += regions[region][0]; quarter2 += regions[region][1]; quarter3 += regions[region][2]; quarter4 += regions[region][3]; } console.log('quarter 1:', quarter1); console.log('quarter 2:', quarter2); console.log('quarter 3:', quarter3); console.log('quarter 4:', quarter4); 

以下是我認為你要問的兩個功能。 第一個將一個區域作為參數,並輸出其數字的總和。

第二個需要兩個參數 - 你想要總和的四分之一,以及一個包含所有區域的數組。

 var region1 = [1540, 1130, 1580, 1105]; var region2 = [2010, 1168, 2305, 4102]; var region3 = [2450, 1847, 2710, 2391]; var region4 = [1845, 1491, 1284, 1575]; var region5 = [2120, 1767, 1599, 3888]; var allRegions = [region1, region2, region3, region4, region5]; function getRegionTotal(region) { var total = 0; for (var i = 0; i < region.length; i++) { total += region[i]; } return total; } var region1Total = getRegionTotal(region1); console.log('Region 1 total:', region1Total); function getQuarterTotal(quarter, regions) { var total = 0; for (var i = 0; i < regions.length; i++) { // Note that we reduce the quarter variable by one. This is due to arrays being zero-based. total += regions[i][quarter - 1]; } return total; } var quarter2Total = getQuarterTotal(2, allRegions); console.log('Quarter 2 total:', quarter2Total); 

我想首先你應該獲得一個數組數組:

var region1 = [1540, 1130, 1580, 1105];
var region2 = [2010, 1168, 2305, 4102];
var region3 = [2450, 1847, 2710, 2391];
var region4 = [1845, 1491, 1284, 1575];
var region5 = [2120, 1767, 1599, 3888];
var rawArr = [];
rawArr.push(region1);
rawArr.push(region2);
rawArr.push(region3);
rawArr.push(region4);
rawArr.push(region5);

然后,您將能夠處理添加列和添加列:

var summRegion = rawArr.map((element) => element.reduce((a, b)=> a + b,0));
console.log(summRegion); // [ 5355, 9585, 9398, 6195, 9374 ]
var sumColumns = [0,0,0,0];

for (var i = 0; i < 4; i++)
    rawArr.forEach((element) => {sumColumns[i] += element[i]});

console.log(sumColumns); // [ 9965, 7403, 9478, 13061 ]

你的意思是這樣的嗎?

var quarterlyResultsObj = {};
for( var x = 0 ; x < region1.length ; x++ ){
    var thisQuarter = "quarter_" + x;
    var quarterResult = region1[x] + region2[x] + region3[x] + region4[x] + region5[x];  
    quarterlyResultsObj[ thisQuarter ] = quarterResult;
}

之后你會有一個像這樣結構的對象:

{
    quarter_1 : 6000,
    quarter_2 : 5000,
    quarter_3 : 7000,
    quarter_4 : 5600
}

我包括季度和地區的計算。 可以在https://jsfiddle.net/d8hLc9L5/5/找到工作示例。

var regions = [
    [1540, 1130, 1580, 1105],
    [2010, 1168, 2305, 4102],
    [2450, 1847, 2710, 2391],
    [1845, 1491, 1284, 1575],
    [2120, 1767, 1599, 3888]
  ],
  countRegions = regions.length,
  countQuarter = 4;

function SumQuarter() {
  for (var q = 0; q < countQuarter; q++) {
    var sumQuarter = 0;
    for (var r = 0; r < countRegions; r++) {
      sumQuarter = sumQuarter + regions[r][q];

    }
    console.log('quarter:' + (q + 1) + ' sum: ' + sumQuarter);
  }
}

function SumRegions() {

  for (var r = 0; r < countRegions; r++) {
    var sumRegions = 0;
    for (var q = 0; q < countQuarter; q++) {
      sumRegions += regions[r][q];
    }
    console.log('region:' + (r + 1) + ' sum: ' + sumRegions);

  }
}
SumQuarter();
SumRegions();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM