前提・実現したいこと
リスト出力をする際に、タイトル行を飛ばして処理を
行いたいと考えてJavaScriptでタイトル行番号を格納した配列を
読み込んで、要素番号と比較しタイトル行番号と一致した場合に
TITLEと出力させる処理を行いたいと考えJavaScriptを記述しました。
発生している問題・エラーメッセージ
タイトル行番号は複数あるのですが、先頭の1個の行番号としか比較を
行ってくれずに最初の1個しか処理が行われていません。
本来は以下の様になる想定ですが
TITLE0
リスト内の値1
リスト内の値2
リスト内の値3
TITLE1
リスト内の値5
以下の様になってしまいます。
TITLE0
リスト内の値1
リスト内の値2
リスト内の値3
リスト内の値5
該当のソースコード
JavaScript
1var j = 1; 2for(var key in targetData){ 3 console.log(j); 4 for(var l=0;l<titleNo.length;l++){ 5 //タイトルの場合はスキップ 6 if(j == titleNo[l]){ 7 rowNo.push('TITLE' + l); 8 j=j+1; 9 break; 10 }else{ 11 rowNo.push(targetData[key]); 12 break; 13 } 14 } 15 j=j+1; 16}
試したこと
jが1から開始しているのが原因かと思い、0に変更しましたが
結果は変わりませんでした。
補足情報
rowNoに格納しているデータの内容を取込し、titleNoに格納されている
行番号とjの値を比較しています。
j自体は意図している通り行数分実行されていますがtitleNoの箇所が
きちんとループしてくれていません。
かなり悩みましたが、console.logで動きを追ってもどうしていいか
分からないので、ご助力お願いできますでしょうか。
※targetDataの構造です
|行番号|"表示する内容"|
以下の様な内容となります。
{1:"テスト1",2:"テスト2",3:"テスト3"}
console.log(JSON.stringify(targetData))の結果です。
{"1":"VER","2":"null","3":"5000","4":"1885","5":"YAKU","6":"アク","8":"aaa","9":"http://bbb.jp/pamph/aa/1.pdf","10":"2017/04/01","11":"○","12":"○","13":"×","14":"○","15":"×","16":"×","17":"×","18":"×","19":"×","20":"×","28":"日額×5、日額×日数","29":"1日目","30":"20日","31":"1,000日","33":"5日未満は額×5、日数5日以上は、日額×日数","34":"1日目から","35":"120日","36":"1,000日","38":"日額×5、日数5日以上は、日額×日数","39":"-","40":"120日","41":"1,000日","43":"日額×5。\n5日以上は、日額×日数","44":"1日目から","45":"120日","46":"1,000日","48":"1回につき40倍、\nそれ以外は×10倍","49":"1回につき","50":"1回につき","51":"-","53":"-","54":"-","56":"同額","57":"気・ガそれぞれの期間中、1,000日","58":"-","59":"null","60":"-","61":"-","62":"-","63":"-","64":"-","66":"×","67":"null","68":"null","69":"-","71":"-","72":"-","74":"-","75":"-","77":"null"}
回答3件
あなたの回答
tips
プレビュー