#実現したいこと
現在JavaScriptでCSVを読み込み,ランダムにした状態でarrayを作成しました.
さらにそれをspelling, meaning を入れ替えた状態にしたいのですが, 数値を変更したり等書き換えてみたところ, spelling, meaningが一括で入れ替わってしまうなどバラバラにrandomにすることができませんでした.
文字だけの説明ではわかりにくいと思いますので実現させたいことをこの下に詳しく記載しております.ご確認いただけますと幸いです.
以下コード
js
1 let data; 2 window.addEventListener('DOMContentLoaded', ()=>{ 3 const myfile=document.querySelector('#output_csv'); 4 myfile.addEventListener('change',async e=>{ 5 var f=e.target.files[0]; 6 var fr=new FileReader(); 7 var aaa =await new Promise((resolve)=>{ 8 fr.addEventListener('load',()=>{ 9 const content=fr.result; 10 data=content.split(/[\r\n]+/).map(x=>(y=x.split(","),{spelling:y[1],meaning:y[0]})); 11 resolve(aaa); 12 }); 13 fr.readAsText(f) ; 14 }); 15 data.sort (function (a, b) {return Math.floor (Math.random () * 3) - 1 ;}) ; 16 console.log(data); 17 }); 18 });
これでCSVを処理するとどうなるのかというと,
元CSV
csv
1apple,りんご 2banana,バナナ 3orange,オレンジ 4happy,幸せ 5hey,へい 6color,色 7function,関数 8red,赤 9blue,青 10black,黒
処理したarray
console
1Array (10) 20 {spelling: "幸せ", meaning: "happy"} 31 {spelling: "黒", meaning: "black"} 42 {spelling: "りんご", meaning: "apple"} 53 {spelling: "バナナ", meaning: "banana"} 64 {spelling: "青", meaning: "blue"} 75 {spelling: "オレンジ", meaning: "orange"} 86 {spelling: "へい", meaning: "hey"} 97 {spelling: "色", meaning: "color"} 108 {spelling: "関数", meaning: "function"} 119 {spelling: "赤", meaning: "red"}
こんな感じになります。
ここでさらにspelling, meaning を入れ替えて
Array (10) 0 {spelling: "happy", meaning: "幸せ"} 1 {spelling: "黒", meaning: "black"} 2 {spelling: "りんご", meaning: "apple"} 3 {spelling: "banana", meaning: "バナナ"} 4 {spelling: "青", meaning: "blue"} 5 {spelling: "オレンジ", meaning: "orange"} 6 {spelling: "hey", meaning: "へい"} 7 {spelling: "color", meaning: "色"} 8 {spelling: "関数", meaning: "function"} 9 {spelling: "red", meaning: "赤"}
この様にspelling, meaningをランダムに入れ替えたいです.
解決策等具体的にお分かりの方, ご回答いただけますと幸いです.
よろしくお願いいたします.
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/10/17 08:31
2020/10/17 08:38
2020/10/17 08:47