#実現したいこと
作成したarrayをHTMLで"Next"ボタンが押された時に1つづつinputに出力したいのですが
終了しました
とアラートが出て1つも出力されないまま終わってしまいます.
arrayはconsoleに出した時に問題なく表示されているので恐らくボタンのコードに問題があると考えています.
以下ボタン部分と動作を行うソースコードです.
js
1<script> 2let data; 3 window.addEventListener('DOMContentLoaded', ()=>{ 4 const myfile=document.querySelector('#output_csv'); 5 myfile.addEventListener('change',async e=>{ 6 var f=e.target.files[0]; 7 var fr=new FileReader(); 8 var aaa =await new Promise((resolve)=>{ 9 fr.addEventListener('load',()=>{ 10 const content=fr.result; 11 data=content.split(/[\r\n]+/).map(x=>(y=x.split(","),{spelling:y[0],meaning:y[1]})); 12 resolve(aaa); 13 }); 14 fr.readAsText(f) ; 15 }); 16 data.sort (function (a, b) {return Math.floor (Math.random () * 3) - 1 ;}) ; 17 console.log(data); 18 }); 19 }); 20function Next() { 21if (data.length==0){ 22 window.alert("すでに終了しています"); 23} 24 25while(true){ 26 var word = data.shift(); 27 28 if(data.length==0){ 29 window.alert("終了しました"); 30 return; 31 }else{ 32 document.getElementById("question").value = word.spelling 33 } 34} 35} 36 37</script> 38<div class="start"> 39 <form> 40 <button onclick="Next() ;"> 41 NEXT 42 </button> 43 </form> 44</div> 45<input id="question">
arrayに関するソースを追記しました.
少々長くなりますがご了承ください
console.log(data)
の部分ですが,問題なくコンソールに表示されました
回答2件
あなたの回答
tips
プレビュー