首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何为具有多个元素的数组创建for循环?

如何为具有多个元素的数组创建for循环?
EN

Stack Overflow用户
提问于 2016-07-10 22:12:50
回答 5查看 336关注 0票数 4

我是一个学习JavaScript的学生,所以我的知识并不复杂,所以请温柔一点。:)

我得到了:

代码语言: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];

括号中的每个数字代表季度的数字。我需要给出每个区域(跨区域的加法)和每个季度(列下的加法)的汇总销售的for循环。我知道如何做单项数组。例如:

代码语言:javascript
复制
var sum=0;
for (var i = 0; i < totals.length; i++) {
sum += totals [i];
}

谢谢你的进阶。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2016-07-10 22:28:25

我不知道这是不是你想要的,但我想你想要在所有五个地区的四分之一的总销售额;

代码语言:javascript
复制
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);

票数 2
EN

Stack Overflow用户

发布于 2016-07-10 22:32:53

这里有两个功能来完成我认为你要求的事情。第一个区域以单个区域作为参数,并输出其数字之和。

第二个参数是两个参数--您想要的四分之一和,以及一个包含所有区域的数组。

代码语言: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 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);

票数 1
EN

Stack Overflow用户

发布于 2016-07-10 22:35:22

我认为首先您应该获得一个数组:

代码语言: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 rawArr = [];
rawArr.push(region1);
rawArr.push(region2);
rawArr.push(region3);
rawArr.push(region4);
rawArr.push(region5);

然后,您将能够处理跨列和向下添加的添加:

代码语言:javascript
复制
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 ]
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38296896

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档