多次元配列で配列内の左の文字が同じ時だけ右の数値を足すという処理を考えてます。
多次元配列で配列(0番目は除く)[a,b]の内、aの値が同じ時だけbの値を足し、その計を配列に保管していくという処理を考えています。
途中までは上手く行くのですが最後が足せなくなります。
最初の'a'は必ず入るものとして考えています。
また、下記謎のエラーもでるので構文的に間違えているのかもよくわかりません。
Uncaught TypeError: Cannot read property '0' of undefined
もっと上手い書き方があるよという方、ご教示をお願いしたいです。
javascript
1let tajigen = [ 2 [ 'a' ], 3 [ 1,1 ], 4 [ 1,1 ], 5 [ 1,1 ], 6 [ 2,5 ], 7 [ 2,6 ], 8 [ 2,9 ], 9 [ 4,3 ], 10 [ 4,5 ], 11 [ 7,10 ], 12 [ 7,12 ], 13 ] ; 14 let hensu1=0;//比べる元を入れる用 15 let hensu1v=[];//1と2それぞれ足した値を入れる用 16 let syoukei=0;//左が同じ数値の時に足す用 17 hensu1 = tajigen[1][0]; 18 for(let n=1;n<tajigen.length-1;n++){ 19 let hensu2 = tajigen[n+1][0]; 20 if(n!==tajigen.length){ 21 if(hensu1===hensu2){ 22 syoukei += tajigen[n][1]; 23 }else{ 24 syoukei += tajigen[n][1]; 25 hensu1v.push(syoukei); 26 console.log('syoukei1:', syoukei); 27 syoukei = 0; 28 hensu1 = tajigen[n+1][0]; 29 } 30 }else{ 31 syoukei += tajigen[tajigen.length-1][1]; 32 console.log('syoukei2:', syoukei); 33 hensu1v.push(syoukei); 34 syoukei = 0; 35 } 36 } 37 console.log('hensu1v:', hensu1v);
回答2件
あなたの回答
tips
プレビュー