二维阵列水平平均输出
two dimensional array horizontal average output
我遇到了一个问题,不知道如何将其放入for循环中。我需要下一个矩阵的hotizontal平均值:
1 2 3 4 5
5 4 3 2 1
3 2 1 4 5
到目前为止我得到的:
var dArray = [[1, 2, 3, 4, 5], [5, 4, 3, 2, 1], [3, 2, 1, 4, 5]];
for (x=0; x<dArray.length; x++)
{
//this loop needs to go trough each horizontal matrix and put
//the average in a variable so i can print it later
//average .... team[0][x] something?
//document.write(average)
}
最终产品类似于
我想在最后做一个表格,并将每个"阵列的平均值
Arr 0 1 2 3 4 5 average:
Arr 1 5 4 3 2 1 average:
Arr 2 3 2 1 4 5 average:
用您想要的语言执行此操作。Java或Javascript。选择一个。
for (int i = 0; i < rows; ++i)
{
double sum = 0;
for (int j = 0; j < columns; ++j)
{
sum = sum + matrix[i][j];
}
double avg = sum / columns;
print(avg);
}
基本上,这是:对于矩阵中的每一行,创建所有元素的总和,然后将总和除以列数,得出该行的平均值。
这将计算ur值并将其放置在一个新矩阵中,平均值位于最后一列。
double[][] Table = new double[dArray.length][dArray[0].length+1];
double sum, avg;
for(int i = 0; i<dArray.length; i++)
{
sum = 0;
for(int j = 0; j<dArray[0].length; j++)
{
Table[i][j]=dArray[i][j];
sum += dArray[i][j];
}
avg = sum/dArray[0].length;
Table[i][dArray[0].length] = avg;
}
var res = [];
for(i = 0;i<dArray.length;i++){
var tot=0;
for(j=0;i<dArray[i].length;j++){
tot +=dArray[i][j];
}
res.push(tot/dArray[i].length);
}
return res;
您可以在javascript:中执行以下操作
拥有类似div
的
<div id="matrix_output"> </div>
并添加javascript
代码:
var dArray = [[1, 2, 3, 4, 5], [5, 4, 3, 2, 1], [3, 2, 1, 4, 5]];
var texts='';
for (i=0; i<dArray.length; i++)
{
sum=0;
for(j=0;j<dArray[i].length;j++){
sum=sum+dArray[i][j];
texts=texts + dArray[i][j] + " 't";
}
avg=sum/dArray[i].length;
texts= texts + avg + " <br/>" ;
dArray[i][dArray[i].length]=avg;
}
document.getElementById("matrix_output").innerHTML=texts;
检查以下链接以供参考:
http://jsfiddle.net/xGZPL/
这段代码提醒以类似表格的字符串结构的数据。
var dArray = [[1, 2, 3, 4, 5], [5, 4, 3, 2, 1], [3, 2, 1, 4, 5]];
var str = '';
dArray.forEach(function(arr, index){
var average = arr.reduce(function(sum, item){ return sum + item; })/arr.length;
str += ''n Array ' + index + ': ' + arr.join(' ') + ' average: ' + average;
});
alert(str);
方法:
var dArray = [[1, 2, 3, 4, 5],[5, 4, 3, 2, 1],[3, 2, 1, 4, 5]];
alert(dArray.map(function (a) {
return (a.reduce(function (x, y) {return (x + y);})/a.length);
}));
实施:
<div id="matrix"></div>
<script>
var dArray = [[1, 2, 3, 4, 5],[5, 4, 3, 2, 1],[3, 2, 1, 4, 5]];
var buffer='';
dArray.map(function (a) {
buffer+= a.toString()+","+ (a.reduce(function (x, y) {return (x + y);})/a.length)+"<br/>";
});
document.addEventListener('DOMContentLoaded',function(){
document.getElementById('matrix').innerHTML=buffer;
},false);
</script>
使用map和reduce。
var matrix = [[1, 2, 3, 4, 5],[5, 4, 3, 2, 1],[3, 2, 1, 4, 5]]
var result = matrix.map(row=>row.reduce((a,b) => a+b)/row.length);
console.log(result.join(', '));
相关文章:
- 在JavaScript中输出转义字符
- 如何在jQuery中将函数的输出分配给变量
- Javascript,输出结果后页面不断刷新
- Datetime格式为Friendly Time.Moment JS输出错误
- 如何将angularjs中的javascript字符串输出为循环数组
- HTML5FileReader输出到D3.js图表
- console.log以外的Javascript输出函数
- Eloquent JavaScript递归示例如何终止为返回1,但仍然输出指数值
- PHP中的数组输出
- 以不同的顺序输出数据
- 使用Rivets.js输出类
- 在Chrome扩展内部输出Google API调用
- 允许表单元格内容水平展开
- 如何为d3.js图表输出组织/嵌套数据
- 将IndexedDB中的数据拉入数组,并通过ReactJS输出
- 如何在c3js动态图表上进行平滑(水平)转换
- 一个ajax循环有两个输出错误innerHTML
- 快速排序程序未正确输出
- 函数将输出nan而不是数字,为什么
- 二维阵列水平平均输出