如何为具有多个元素的数组创建 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();
相关文章:
- 从多维嵌套json数组创建下拉列表
- 为对象数组创建列表项
- 如何在cycle js中从JSON数组创建组件
- 使用数据数组创建多个类似组件
- 如何在 Angular JS 中从关联数组创建多个复选框
- 如何为给定数组创建跨度列表
- 如何在javascript中使用2个一维数组创建层次结构树
- 从数据对象数组创建折线图
- 从 javascript 数组创建一个 Jquery 数组
- Angular2从数组创建一个列表
- 使用JavaScript's Reduce从对象数组创建数组
- 如何从数组创建 jqtree
- 从字符串数组创建唯一组合数组
- 反应.js通过数组创建循环
- 从数组创建新元素,直到每秒数组为空
- 如何使用其他流的值数组创建流
- JavaScript:从字节数组创建图像资源
- 使用拆分字符串的数组创建一个对象
- 从一组数据或数组创建对象
- 多维数组 - 创建一个表