JavaScript -相同行和列中值的总和
JavaScript - Sum of values in same rows and columns
本文关键字:JavaScript 更新时间:2023-09-26
我有数字0和1的JavaScript数组,我需要在同一行和列中对所有数字求和(如果我想象我的数组在二维中)。我想创建第二个数组,对第一个数组中的每个值求和。
第一项(X-Y值表)的二维数组可视化:
, , , , 1
1, 1, 1, 1, 1
1, 1, 1, 1, 1
1, 1, 1, 1, 1
1, 1, 1, 1, 1
(Sum: 8 for value at index 0;0 (value本身除外))
实际数组我:
, , , , , 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1
(Sum: 8 for value at index 0)
2 d数组可视化为第二项:
, , , , 1
1, 1, 1, 1, 1
1, 1, 1, 1, 1
1, 1, 1, 1, 1
1, 1, 1, 1, 1
(Sum: 8 for value at index;0)
这样我就需要循环遍历整个数组
2 d数组可视化第二项为零分隔符:
, , , , 1
, 1, 1, 1, 1
1, 0, 1, 1, - 1
1, <罢工> 1> , <罢工> 1> Sum: 5 for value at index;0)
0之后的值我不想算进去。罢工>罢工>
对于前一个表,结果表应该是…
8、5、8、8、8
8、5、8、8、8
4 x 6 6 6
8、5、8、8、8
8、5、8、8、8
非常感谢你的帮助!
var res = []; //the 1D array to hold the sums
var hArr = [
[ 1, 1, 1, 1 ],
[ 1, 1, 1, 1 ],
[ 1, 0, 0, 1 ],
[ 1, 1, 0, 0 ]
]; //your array
var vArr = []; //Now lets create an array of arrays with the columns of hArr
for (var j=0; j<hArr[0].length; j++) {
var temp = [];
for (var i=0; i<hArr.length; i++) {
temp.push(hArr[i][j]);
}
vArr.push(temp);
}
//sum all the element in the line - Vertically and Horizontally
function SumVH (hInd, vInd) {
var sum = 0;
//add horizontal elements
//to the left
for(var i=(vInd-1); i>=0; i--) {
//if a 0 is found, break
if (hArr[hInd][i] == 0) {
break;
}
sum += hArr[hInd][i];
}
//to the right
for(var i=(vInd+1); i<hArr[hInd].length; i++) {
//if a 0 is found, break
if (hArr[hInd][i] == 0) {
break;
}
sum += hArr[hInd][i];
}
//add vertical elements
//towards top
for(var i=(hInd-1); i>=0; i--) {
//if a 0 is found, break
if(vArr[vInd][i] == 0) {
break;
}
sum += vArr[vInd][i];
}
//towards bottom
for(var i=(hInd+1); i<vArr[vInd].length; i++) {
//if a 0 is found, break
if(vArr[vInd][i] == 0) {
break;
}
sum += vArr[vInd][i];
}
//console.log("hInd="+hInd+" vInd="+vInd+" Sum="+sum);
return sum;
}
// go through the main array and get result
var sumR = 0;
//sum of each row
for (var i=0; i<hArr.length; i++) {
for (var j=0; j<hArr[i].length; j++) {
sumR = SumVH(i,j);
res.push(sumR);
}
}
请检查一下,让我知道它是否像你期望的那样工作。res
变量保存结果
相关文章:
- 为什么不't Javascript对我的输入值进行了一些重新检查
- 创建一个类似链接的按钮,并通过Javascript函数打开一个新的弹出窗口
- 将函数的上下文应用于javascript变量
- 使用php或javascript从facebook相册URL中删除多余的部分
- 正在添加'X'按钮,在文本字段旁边使用javascript
- 如何在JavaScript中将字符串转换为函数引用
- 模糊事件的Javascript测试
- Javascript更改图标
- 如何将HTML id分配给元素,以及如何将JavaScript应用于元素
- 如何使用WCF服务和javascript表单post上传.doc文件
- javascript结合了数组和字典
- 这是什么 ==- javascript 运算符
- 从javascript创建一个列表
- 无法在通过jQuery的ajax加载的页面中执行javascript
- Javascript:selenium Web驱动程序isDisplayed()不工作
- 如何通过ajax刷新JSF填充的javascript变量
- 如何在Javascript中将JSon对象转换为数组
- Javascript生成的表单未提交
- 使用javascript将动态表从一个html页面打印到另一个html页
- 通过javascript重定向html传递php变量