JavaScript を自ら学ぶ人のための質問スレッドです。
>>2-4のテンプレを読んだ上で質問してください。
■質問を書く上で
(1) 煽り、コード制作依頼等、人を不快にさせる投稿はご遠慮下さい。公序良俗を守った応対を心がけてください。
(2) 他の人に迷惑をかけるスクリプトの質問はご遠慮ください。
(ブラクラ、[戻る], [閉じる], [クリック] の妨害、画面占有など)
(3) 質問者及び議論を行う人はメール欄を空欄にし、名前にレス番を入れることを強く推奨します。回答者はなりすましを判断できませんので、なりすましが現れても自己責任となります。
(4) 常に自発的に調べる心構えを持ってください。
具体的には「自分で調べてから質問する」「回答をもらってわからない単語があればGoogle検索してみる」など。
わからない内容を代わりに調べてくれる回答者をお望みの方は余所で質問してください。
(5) 出来るだけ一般的な用語を使用してください。脳内オレオレ用語は混乱の元です。
(6) 出来るだけサンプルコードを掲示してください。言葉による説明は行き違いが生まれる場合があります。
※必ず「問題の事象が再現されること」を確認してください。
必要な部分だけ切り出したつもりで現象が再現できていなかったケアレスミスがしばしば見られます。
(7) サンプルコードに HTML が含まれる場合は http://validator.w3.org/ で [Check] してみてください。
(8) 質問を具体的かつ詳細に書くと回答を得られやすいです。>>2の質問テンプレートを活用してみてください。
(9) 時にはあなたが望む「答え」だけでなく、「意見」などが寄せられる場合もあります。
+ JavaScript の質問用スレッド vol.123 +
http://peace.2ch.net/test/read.cgi/hp/1423915644/
(ライブラリ禁止条項は、多数の意見によって廃止されました。ライブラリの質問もOKです)
探検
+ JavaScript の質問用スレッド vol.124 + [転載禁止]©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
2015/03/22(日) 16:19:45.75ID:nW67tQ7U
541デフォルトの名無しさん
2017/12/24(日) 15:07:00.78ID:UCQX5tUj542デフォルトの名無しさん
2017/12/24(日) 15:41:38.56ID:A3ERayLu >>540
意味がわからないのは、そのコードの可読性が低いから、
だめだよ。そんな書き方をしたら
普通に書こう。前提として for(ここ; ここ; ここ) の「ここ」の部分は省略できる
まず、一番目の「ここ」は初期化なのだから forの外に移動できる
Array.prototype.shuffle = function() {
var j, x, k = this.length;
for(; k; j = Math.floor(Math.random() * k), x = this[--k], this[k] = this[j], this[j] = x);
return this;
};
そして、3番目の「ここ」はループの中に入れることができる
Array.prototype.shuffle = function() {
var j, x, k = this.length;
for(; k;) {
j = Math.floor(Math.random() * k), x = this[--k], this[k] = this[j], this[j] = x
}
return this;
};
意味がわからないのは、そのコードの可読性が低いから、
だめだよ。そんな書き方をしたら
普通に書こう。前提として for(ここ; ここ; ここ) の「ここ」の部分は省略できる
まず、一番目の「ここ」は初期化なのだから forの外に移動できる
Array.prototype.shuffle = function() {
var j, x, k = this.length;
for(; k; j = Math.floor(Math.random() * k), x = this[--k], this[k] = this[j], this[j] = x);
return this;
};
そして、3番目の「ここ」はループの中に入れることができる
Array.prototype.shuffle = function() {
var j, x, k = this.length;
for(; k;) {
j = Math.floor(Math.random() * k), x = this[--k], this[k] = this[j], this[j] = x
}
return this;
};
543デフォルトの名無しさん
2017/12/24(日) 15:45:14.80ID:A3ERayLu あとは整形しよう
Array.prototype.shuffle = function() {
var j, x, k = this.length;
for(; k;) {
j = Math.floor(Math.random() * k);
x = this[--k];
this[k] = this[j];
this[j] = x;
}
return this;
};
そしてforではなくwhile使ったりと普通の書き方に書き直す
Array.prototype.shuffle = function() {
var k = this.length;
while(k) {
var j = Math.floor(Math.random() * k);
k--;
var x = this[k];
this[k] = this[j];
this[j] = x;
}
return this;
};
Array.prototype.shuffle = function() {
var j, x, k = this.length;
for(; k;) {
j = Math.floor(Math.random() * k);
x = this[--k];
this[k] = this[j];
this[j] = x;
}
return this;
};
そしてforではなくwhile使ったりと普通の書き方に書き直す
Array.prototype.shuffle = function() {
var k = this.length;
while(k) {
var j = Math.floor(Math.random() * k);
k--;
var x = this[k];
this[k] = this[j];
this[j] = x;
}
return this;
};
544デフォルトの名無しさん
2017/12/24(日) 16:00:39.17ID:A3ERayLu ES6使った最新の書き方だとこうなるかな
Array.prototype.shuffle = function() {
for (let i = this.length; i > 0; i--) {
const a = i - 1;
const b = Math.floor(Math.random() * i);
[this[a], this[b]] = [this[b], this[a]];
}
return this;
};
console.log([0,1,2,3,4,5,6,7,8,9].shuffle());
そしてlodashにはshuffle関数は用意されてるので何も作る必要はないw
https://lodash.com/docs/4.17.4#shuffle
Array.prototype.shuffle = function() {
for (let i = this.length; i > 0; i--) {
const a = i - 1;
const b = Math.floor(Math.random() * i);
[this[a], this[b]] = [this[b], this[a]];
}
return this;
};
console.log([0,1,2,3,4,5,6,7,8,9].shuffle());
そしてlodashにはshuffle関数は用意されてるので何も作る必要はないw
https://lodash.com/docs/4.17.4#shuffle
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【地震速報】青森県で震度6強 沿岸部に津波警報 ★2 [ぐれ★]
- 【地震速報】青森県で震度6強 沿岸部に津波警報 ★3 [ぐれ★]
- 【速報】高市総理が官邸入り [Hitzeschleier★]
- 「日の丸にバツ印」掲げた大学生 あいまいな国旗損壊罪に「怖い」 The Mainichi [少考さん★]
- 【震度6強】政府 危機管理センターに官邸対策室を設置 [ぐれ★]
- 高市内閣「支持」64%「不支持」19% NHK世論調査 ★2 [少考さん★]
- 地震 ★2
- 【悲報】高市早苗、議員定数1割削減の根拠を答えられず終了 [834922174]
- 【速報】高市早苗、起床 [779938112]
- ぺこーら、地震で同僚が次々配信を止めるなか強行し続けるので悪目立ちするwww [268244553]
- 巨大地震 [957955821]
- セガサターンって、何のソフトを遊ぶゲーム機だったの? [289068665]
