var data1 =["Aさん","Bさん","Cさん","Dさん"]
var data2 =["北海道","千葉","神奈川","沖縄"]
var data3 =["10歳","12歳","50歳","44歳"]
var shuffle = function() {return Math.random()-.5};
data1.sort(shuffle)
上記を実行しdata1の人名をシャフルした場合、それに紐付いたdata2(出身地)、data3(年齢)を人名にそれぞれに紐付けるにはどうしたらいいのでしょうか?
Aさんの出身地は北海道で10歳です。
data1,data2,data3をまとめてそれぞれシャフルしてしまうと、名前と、出身地と年齢もバラバラになってしまうため、シャフルしたdata1と同じ順番にそれに紐付いたdata2とdata3を並べる方法はありますか?
data1の配列の中身をシャフルしてそのシャフルした順番に合わせて
data2,data3も同じ順番にそろえたいです。
data1,2,3のそれぞれの配列同士をジョイントして、それをシャフルしたあと、もう一度配列を3つに分けて元に戻す?というやり方??
いいアイデアを是非教えてください。
ダミーの配列を用意して、それをシャッフルした後にダミーの配列の順にdata1~3を並び替えるのはどうでしょうか?
【手順】
1. data0を{0,1,2,3}で初期化する。
2. data0をシャッフルする。
3. data0の結果に応じて、data1~3を並び替える。
例えば、2.の後にdata0が{2,0,1,3}になっていたら、data1は{"Cさん","Aさん","Bさん","Dさん"}とする感じです。