本文介绍了JavaScript的 - 在相同的行和列值的总和的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述 我有JavaScript数组与数字0和1,我需要在相同的行和列的所有号码的总和(如果我想象我的阵列中的两个维度)。我想创建资金用于在第一个数组的每一个值,第二个阵列。结果二维数组可视化的第一个项目(价值X-Y表):结果 1 , 1 , 1 , 1 , 1 的结果 1 ,1,1,1,1结果 1 ,1,1,1,1结果 1 ,1,1,1,1结果 1 ,1,1,1,1结果(总:8值在索引0; 0(与值本身除外)) REAL数组我有: 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1(总:8值在索引0)二维数组可视化第二项:结果 1 , 1 , 1 , 1 , 1 的结果1, 1 中,1,1,1结果1, 1 中,1,1,1结果1, 1 中,1,1,1结果1, 1 中,1,1,1搜索结果(总:8值在索引1; 0)结果这样,我需要通过整个数组循环。二维数组可视化第二个项目零的分隔符:结果 1 , 1 , 1 , 1 , 1 的结果1, 1 中,1,1,1结果1,0,1,1,1结果1, 1 ,1,1,1-结果1, 1 ,1,1,1-结果(总:5值与索引1; 0)结果零后的值,我不想在计数。有关previous表结果表应该是这样......结果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解析度= []; //将一维数组持有的款项VAR哈尔= [ [1,1,1,1], [1,1,1,1], [1,0,0,1], [1,1,0,0]]; //你的数组变种vArr = []; //现在,让我们创建一个数组的数组与哈尔的列对于(VAR J = 0; J&LT;哈尔[0]。长度; J ++){ 变种临时= []; 对于(VAR I = 0; I&LT; hArr.length;我++){ temp.push(哈尔[I] [J]); } vArr.push(临时);}//总和所有在该行的元素 - 合纵连横功能SumVH(后腿,VIND){ 变种总和= 0; //添加水平元素 //往左边 为(变量I =(VIND-1); I&GT; = 0;我 - ){ //如果发现一个0,休息 如果(哈尔[后] [I] == 0){ 打破; } 总和+ =哈尔[后肢] [I]; } //在右边 对于(VAR I =(VIND + 1); I&LT;哈尔[后肢]。长度;我++){ //如果发现一个0,休息 如果(哈尔[后] [I] == 0){ 打破; } 总和+ =哈尔[后肢] [I]; } //增加垂直元素 //朝上方 为(变量I =(后-1); I&GT; = 0;我 - ){ //如果发现一个0,休息 如果(vArr [VIND] [I] == 0){ 打破; } 总和+ = vArr [VIND] [I]; } //朝底 对于(VAR I =(后腿+ 1); I&LT; vArr [VIND]。长度;我++){ //如果发现一个0,休息 如果(vArr [VIND] [I] == 0){ 打破; } 总和+ = vArr [VIND] [I]; } //console.log(\"hInd=\"+hInd+VIND =+ VIND +总和=+总和); 返回总和;}//经过主阵列,并得到结果变种sumR = 0;//每一行的总和对于(VAR I = 0; I&LT; hArr.length;我++){ 对于(VAR J = 0; J&LT;哈尔[I]。长度; J ++){ sumR = SumVH(I,J); res.push(sumR); }} 请检查一下,让你期望它的工作我知道,如果是工作。 RES 变量保存的结果。I have JavaScript array with numbers 0 and 1 and I need to make a sum of all numbers in same row and column (if I imagine my array in two dimensions). I want to create second array with sums for every single value in first array.2D array visualization for first item (X-Y table of values): 1,1,1,1,11,1,1,1,11,1,1,1,11,1,1,1,11,1,1,1,1(Sum: 8 for value at index 0;0 (with value itself excluded))Real array I have: 1,1,1,1,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)2D array visualization for second item: 1,1,1,1,11,1,1,1,11,1,1,1,11,1,1,1,11,1,1,1,1(Sum: 8 for value at index 1;0)This way I need to loop through whole array.2D array visualization for second item with zero separator: 1,1,1,1,11,1,1,1,11,0,1,1,11,1,1,1,11,1,1,1,1(Sum: 5 for value at index 1;0)Values after zero I don't want to count in.For previous table the result table should be like...8,5,8,8,88,5,8,8,84,x,6,6,68,5,8,8,88,5,8,8,8Thank you very much for your help! 解决方案 var res = []; //the 1D array to hold the sumsvar hArr = [ [ 1, 1, 1, 1 ], [ 1, 1, 1, 1 ], [ 1, 0, 0, 1 ], [ 1, 1, 0, 0 ]]; //your arrayvar vArr = []; //Now lets create an array of arrays with the columns of hArrfor (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 Horizontallyfunction 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 resultvar sumR = 0;//sum of each rowfor (var i=0; i<hArr.length; i++) { for (var j=0; j<hArr[i].length; j++) { sumR = SumVH(i,j); res.push(sumR); } }Please check it and let me know if it is working as you expect it to work.res variable holds the result. 这篇关于JavaScript的 - 在相同的行和列值的总和的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持! 10-24 18:14