我有二维数组格式的字符串值变量。

 var arrayList=[["1","2"],["6","3600","11","60"],["1","2","3","4","5","6"]];


我想要的是,每个奇数位置值与下一个偶数位置相乘,最后将其相加

喜欢。

["1","2"]=(1*2);
["6","3600","11","60"]=((6*3600)+(11*60));
["1","2","3","4","5","6"]=((1*2)+(3*4)+(5*6))


为此,我编写了以下代码,第二和第三种情况不起作用。

真的很抱歉,这可能是一个非常基本的问题,但是我对每一行进行了测试,似乎代码是正确的,但是在第二和第三种情况下都得到了Nan

 var result=[];
for (var index = 0; index < arrayList.length; index++) {
  var innerResult=0;
  for (var jndex = 0; jndex < arrayList[index].length; jndex++) {
    var cali=parseInt(arrayList[index][jndex])*parseInt(arrayList[index][jndex+1]);
      innerResult=innerResult+cali;
      jndex=jndex+2;
  };
  result.push(innerResult);
};
result


我越来越喜欢这个[3,Nan,Nan]

请任何人能帮助我。

谢谢

最佳答案

您在每个循环上增加jndex,然后在该循​​环结束时再添加2。您有两种选择,可以对此进行更改:

for (var jndex = 0; jndex < arrayList[index].length; jndex++) {


至:

for (var jndex = 0; jndex < arrayList[index].length; jndex+=2 ) {


或这个:

jndex=jndex+2;


至:

jndex=jndex+1;


如果执行第一个,则不再需要循环内的增量。

关于javascript - 如何相乘和添加二维数组,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19881957/

10-11 16:04