アプリ版:「スタンプのみでお礼する」機能のリリースについて

JavaScriptで全くの初心者なのですが、
フィッシャーイェーツのシャッフルをaのリスト内でしてから、
そこから一つ値をとり、
別の関数内で、その関数内での新たな変数に代入するようにしたいです。(function(){var b = this.result;}のような)
プログラミングはやらないのに急に使うことになり困っているのでだれか助けてください。


a = [1,1,1,5,5,5,9,9,9];
for (var a=[],i=0;i<10;++i) a[i]=i;
this.result = a[shuffle(a.length)] ;
function shuffle(array) {
var tmp, current, top = array.length;
if(top) while(--top) {
current = Math.floor(Math.random() * (top + 1));
tmp = array[current];
array[current] = array[top];
array[top] = tmp;
}
return array;
}

A 回答 (2件)

答えはあっちに書いといた



そんで
a = [1,1,1,5,5,5,9,9,9];
for (var a=[],i=0;i<10;++i)
a[i]=i;

変数 a を定義しておいてすぐに上書きするのが意味ない。


this.result = a[shuffle(a.length)] ;
this.result は、グローバル変数だからどこでも変数 result ととして参照できる

a[shuffle(a.length)]
シャッフル関数に配列を渡さないで、その配列の大きさを渡しているので意味がない

ちゃんとしたやつをコピペするべ。
というか、そこにこそ目をつけるべきだべ?
    • good
    • 0
この回答へのお礼

ありがとうございました。何度も助けられました。

お礼日時:2018/09/06 22:51

こんにちは。



アルゴリズムが決まっているのなら、それで検索してみれば、例示はたくさん見つかると思います。

以下はその一例です。
https://webbibouroku.com/Blog/Article/array-shuf …
https://qiita.com/may88seiji/items/69d5b05dff2c9 …
    • good
    • 0
この回答へのお礼

がんばります

休日の中、返信本当にありがとうございます。
ちなみにご紹介いただいたページは私も検索したのですが、どちらかというと、

できたリストからそこから一つ値をとり、
別の関数内で、その関数内での新たな変数に代入するようにしたいです。(function(){var b = this.result;}のような)
のほうで困っています。

お礼日時:2018/09/02 15:00

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!