質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.49%
JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

解決済

3回答

1361閲覧

Javascriptでランダムな

1223013

総合スコア12

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

0クリップ

投稿2019/02/26 02:48

Javascriptにてボタンを押したら0から9のランダムな数字が10個出るというものを作っていて下記のコードを書いたのですが、同じコードが何個も並んでいて見た目が美しくないとのことで止まっています。どうすればうまくまとめられますでしょうか。

Javascript

1button.addEventListener('click',function () { 2 var random1 = Math.floor(Math.random() * 10); 3 var random2 = Math.floor(Math.random() * 10); 4 var random3 = Math.floor(Math.random() * 10); 5 var random4 = Math.floor(Math.random() * 10); 6 var random5 = Math.floor(Math.random() * 10); 7 var random6 = Math.floor(Math.random() * 10); 8 var random7 = Math.floor(Math.random() * 10); 9 var random8 = Math.floor(Math.random() * 10); 10 var random9 = Math.floor(Math.random() * 10); 11 var random10 = Math.floor(Math.random() * 10); 12

まだ勉強を始めたばかりなのですが詰まってしまいました。
よろしくお願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kei344

2019/02/26 02:53

タイトルもコードも途中で途切れています。見た目の話をするなら状況を再現できるようにHTML/CSSも提示してください。
kei344

2019/02/26 03:01

すみません、「見た目」はコードの見た目なのですね、早とちりしました。
guest

回答3

0

ベストアンサー

配列を作りましょう
基本的に繰り返し≒配列なので、配列の扱いを覚えればコピペが殆どなくなります。

JavaScript

1button.addEventListener('click',function () { 2 // 配列を宣言して10個の乱数を突っ込む 3 var randomItems = []; 4 for (var i = 0; i < 10; i++) { 5 randomItems.push(Math.floor(Math.random() * 10)); 6 } 7 8 console.log(randomItems); 9 // [2, 6, 0, 3, 4, 4, 9, 1, 4, 7] 10 11 // 作った配列を使って何かする 12 for (var i = 0; i < randomItems.length; i++) { 13 var random = randomItems[i]; 14 console.log(random); 15 // 2 -> 6 -> 0 ...の順に表示される 16 } 17}

まぁ、あとで使わないなら配列の宣言も不要ですね。

JavaScript

1button.addEventListener('click',function () { 2 for (var i = 0; i < 10; i++) { 3 var random = Math.floor(Math.random() * 10); 4 5 // 作った乱数で何かする 6 console.log(random); 7 } 8}

【おまけ】

JavaScript

1var randomItems = Array(10).fill(0).map(Math.random).map(it => it * 10).map(Math.floor) 2console.log(randomItems); 3// [2, 5, 3, 7, 5, 7, 8, 8, 8, 6]

投稿2019/02/26 03:01

miyabi-sun

総合スコア21158

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

1223013

2019/02/26 03:20

解決しました。 わかりやすく説明してくださりありがとうございます。
guest

0

色々考えられますが

  • 「0から9のランダムな数字を作る」関数を作る
  • 採番が「数値的に順番である」ならforを利用する

いずれにしても変数は配列にして受け取るようにしたほうが良いでしょう。

投稿2019/02/26 03:00

m.ts10806

総合スコア80842

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2019/02/26 03:01

ちなみにこの手の質問は結構あがってますし、まとめ方を指南する記事もあります。質問前にまず探してください。提示の質問にあるような課題は質問者さんが世界で初めて出くわしたものでしょうか?
1223013

2019/02/26 03:21

ありがとうございます。 これからはもっと調べてから質問するようにいたします。
m.ts10806

2019/02/26 03:22

調べて試してくださいね。 失敗から身に付くことの方が多いです。
guest

0

javascript

1var a=Array(10).fill(null).map((x,y)=>[y+1,Math.random()]).sort((x,y)=>x[1]-y[1]).map(x=>x[0]); 2console.log(a);

※ごめんなさい、0から9でしたね

javascript

1var a=Array(10).fill(null).map((x,y)=>[y,Math.random()]).sort((x,y)=>x[1]-y[1]).map(x=>x[0]);

投稿2019/02/26 02:57

編集2019/02/26 03:02
yambejp

総合スコア114742

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

1223013

2019/02/26 03:22

回答ありがとうございます。 解決できました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.49%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問