JavaScript を自ら学ぶ人のための質問スレッドです。
次スレは>>950が(本スレで改善案があれば考慮して)立ててください
■規則/推奨ルール
・メール欄を空欄にし、名前にレス番を入れることを強く推奨(なりすまし防止)
・質問内容は具体的に。言葉だけでなく、出来る限り再現性を確認したサンプルコードの掲示。
・質問テンプレートの利用推奨。
・質問への「答え」から解離した議論はよそでやること。
■禁止行為
・丸投げ質問
・迷惑スクリプトの質問
・オレオレ用語の使用(一般的な用語を使用する事)
・煽り、批判等の他人を不快にさせる行為(批判の代わりに「AよりBが良い」のような代案を出す事)
■質問テンプレート
【環境】OS, ブラウザをバージョンと共に記入してください。
【条件】期待する回答の条件を書いてください。
【何をしたのか】何をしたら問題の現象が発生するのか。再現手順を具体的に書いてください。
【エラーメッセージ】エラーメッセージがあれば正確に書き写してください。
【期待する結果】最終的にどういう結果を望んでいるのか、を書いてください。
【サンプルコード】現象を再現可能な最小限のコードを書いてください。
1レスに収まらないならコード投稿サイトを利用してください。
http://jsdo.it/ http://jsbin.com/ http://jsfiddle.net/ http://ideone.com/
■回答者へ
・回答には多様性があります。他人の回答を尊重してください
・動作ブラウザや環境が限られる場合は、それを明記してください
・他人の回答を批判する代わりに、自分ならこう書くという例を示してください
・質問者がJavaScriptでなければ実現できないと勘違いしてるなら、その否定としてHTMLとCSSで実装しても良い
・他人の回答を見たくないのであれば、文句をつける代わりにNGにして見えないようにしてください。文句をつける=荒らしです
※前スレ
+ JavaScript の質問用スレッド vol.137 +
https://mevius.5ch.net/test/read.cgi/hp/1546773073/
+ JavaScript の質問用スレッド vol.138 +
レス数が1000を超えています。これ以上書き込みはできません。
2019/02/17(日) 02:12:57.04ID:???
929897
2019/04/17(水) 16:49:19.07ID:??? >>927
問題はそこではなくて、これはデータを1次元配列で持ってるのが面倒くさい原因
2次元配列で持っていれば、別に番兵を作る必要もない。配列の範囲外は必ずundefined。
Rubyと違ってa[-1]が配列の後ろから1番目なんて変な仕様はないから自然な番兵となる。
もしくは直感と反するが
0 0 0 0 0 0
0 1 2 3 4 0
0 5 6 7 8 0
0 9 A B C 0
0 D E F x 0
0 0 0 0 0 0
から上下の0を取り除いて
0 1 2 3 4 0
0 5 6 7 8 0
0 9 A B C 0
0 D E F x 0
最初と最後の0を取り除いて(_ に置き換えてる)
_ 1 2 3 4 0
0 5 6 7 8 0
0 9 A B C 0
0 D E F x _
1次元配列にして、連続する0を1個にする。
1 2 3 4 0 5 6 7 8 0 9 A B C 0 D E F x
このデータで、現在のパネルの、左右を+1/-1、上下を+5/-5として扱えば動くぞ。
それを実装たのがこれだ https://jsfiddle.net/gqvn87k5/
>>910 ほれ、なおしたぞ。ドヤ?
問題はそこではなくて、これはデータを1次元配列で持ってるのが面倒くさい原因
2次元配列で持っていれば、別に番兵を作る必要もない。配列の範囲外は必ずundefined。
Rubyと違ってa[-1]が配列の後ろから1番目なんて変な仕様はないから自然な番兵となる。
もしくは直感と反するが
0 0 0 0 0 0
0 1 2 3 4 0
0 5 6 7 8 0
0 9 A B C 0
0 D E F x 0
0 0 0 0 0 0
から上下の0を取り除いて
0 1 2 3 4 0
0 5 6 7 8 0
0 9 A B C 0
0 D E F x 0
最初と最後の0を取り除いて(_ に置き換えてる)
_ 1 2 3 4 0
0 5 6 7 8 0
0 9 A B C 0
0 D E F x _
1次元配列にして、連続する0を1個にする。
1 2 3 4 0 5 6 7 8 0 9 A B C 0 D E F x
このデータで、現在のパネルの、左右を+1/-1、上下を+5/-5として扱えば動くぞ。
それを実装たのがこれだ https://jsfiddle.net/gqvn87k5/
>>910 ほれ、なおしたぞ。ドヤ?
2019/04/17(水) 17:12:43.80ID:???
出たよrubyのクソ仕様w
C時代の番兵でいろんなスレでアスペ荒らししてたのはRubyのクソ仕様が原因だったwww
C時代の番兵でいろんなスレでアスペ荒らししてたのはRubyのクソ仕様が原因だったwww
2019/04/17(水) 18:16:37.62ID:???
jsでゲーム作るならどんなのが?
2019/04/17(水) 18:24:55.68ID:???
2019/04/17(水) 18:49:54.62ID:???
nodeでも動きませんでした。
せめて動くjs書けないのww
せめて動くjs書けないのww
2019/04/17(水) 18:57:56.93ID:???
Rubyと書いてあるじゃん
まあJavaScriptのスレでRubyで答える方がおかしいんだけど
まあJavaScriptのスレでRubyで答える方がおかしいんだけど
935897
2019/04/17(水) 19:06:15.77ID:??? しかもこういう用途に例外を使うとかいうクソ発想の持ち主w
2019/04/17(水) 21:18:21.23ID:???
爆釣やな
937926
2019/04/17(水) 21:22:10.36ID:??? スレは、答えを書く所ではない。
Ruby などの擬似コードで、考え方・ヒントを教える所
それをヒントにして考える・コードを書くのは、質問者自身がやるべき!
答えをコピペする奴は、進歩もしないし、どうにもならない
Ruby などの擬似コードで、考え方・ヒントを教える所
それをヒントにして考える・コードを書くのは、質問者自身がやるべき!
答えをコピペする奴は、進歩もしないし、どうにもならない
2019/04/17(水) 21:26:39.17ID:???
939897
2019/04/17(水) 22:13:35.57ID:??? > Ruby などの擬似コードで、考え方・ヒントを教える所
ダメなコードから学べるのは
ダメなコード例です。
ダメなコードから学べるのは
ダメなコード例です。
2019/04/17(水) 22:22:10.95ID:???
2019/04/17(水) 22:47:48.66ID:???
2重ループ脱出には、catch, throw を使うのが定番。
本を読んでないだろ?
配列のインデックスが負数の場合は、配列を後ろから数えるのも定番。
色んな言語を調べてないだろ?
本を読んでないだろ?
配列のインデックスが負数の場合は、配列を後ろから数えるのも定番。
色んな言語を調べてないだろ?
942897
2019/04/17(水) 23:50:48.63ID:??? >>941
そもそも2重ループなんてするものじゃないから(笑)
filepaths = %w(ab abc abc abc abcd abc)
index = (filepaths.first.chars.find_index.with_index do |char, idx|
!filepaths.all? { |fp| char == fp[idx] }
end || filepaths.first.length) - 1
p index
そもそも2重ループなんてするものじゃないから(笑)
filepaths = %w(ab abc abc abc abcd abc)
index = (filepaths.first.chars.find_index.with_index do |char, idx|
!filepaths.all? { |fp| char == fp[idx] }
end || filepaths.first.length) - 1
p index
943897
2019/04/17(水) 23:52:46.81ID:??? あ、filepaths の内容戻すの忘れてたw
filepaths = %w(abcd ab ab abc abcd aby)
index = (filepaths.first.chars.find_index.with_index do |char, idx|
!filepaths.all? { |fp| char == fp[idx] }
end || filepaths.first.length) - 1
p index
これもう少し簡潔にかけそうな気がしてるんだけど、
すぐに思いつかない。
filepaths = %w(abcd ab ab abc abcd aby)
index = (filepaths.first.chars.find_index.with_index do |char, idx|
!filepaths.all? { |fp| char == fp[idx] }
end || filepaths.first.length) - 1
p index
これもう少し簡潔にかけそうな気がしてるんだけど、
すぐに思いつかない。
944897
2019/04/17(水) 23:54:42.95ID:??? jQueryが得意な人は、いろんなものが得意なんやで?w
2019/04/18(木) 02:12:45.30ID:???
>>939
jQueryばかり勧める人がよくいえたもんだな
jQueryばかり勧める人がよくいえたもんだな
2019/04/18(木) 08:22:16.98ID:???
https://video.fc2.com/content/20090104qC1kSMF2/&tk=TnpnMk5EVXdOalU9
947897
2019/04/18(木) 08:36:37.81ID:???2019/04/18(木) 11:40:31.84ID:???
Ruby, jQuery(JavaScript), Kotlin, Elixir は、関数型言語でもある
でも、Ruby, Kotlinは、オブジェクト指向でもあるから、
その書き方が、jQuery, Elixir からすると、間違いのように言われる
関数型に、オブジェクト指向を混ぜるな、と言われる。
関数型は宣言型だから、手続き型みたいな書き方を嫌がる
関数型でやりすぎると、可読性が悪くなるから、わかりやすい書き方が良い場合もある
でも、Ruby, Kotlinは、オブジェクト指向でもあるから、
その書き方が、jQuery, Elixir からすると、間違いのように言われる
関数型に、オブジェクト指向を混ぜるな、と言われる。
関数型は宣言型だから、手続き型みたいな書き方を嫌がる
関数型でやりすぎると、可読性が悪くなるから、わかりやすい書き方が良い場合もある
2019/04/18(木) 11:57:26.78ID:???
2019/04/18(木) 12:35:37.62ID:???
2019/04/18(木) 12:50:43.01ID:???
クロージャって何がいいの?
http://mevius.5ch.net/test/read.cgi/tech/1415419907/261
261 デフォルトの名無しさん sage 2014/12/15(月) 23:02:52.91 ID:BuhXHDiL
さらに言えば、Rubyのブロック変数のスコープの扱いが1.9で仕様変更されてるけど、
それについてmatz自身が
> それは、Rubyが最初から関数型言語としてスタートしてないからであって、言語が違うからですよね。
と語っているね
http://www.atmarkit.co.jp/news/200907/24/ruby.html
http://mevius.5ch.net/test/read.cgi/tech/1415419907/261
261 デフォルトの名無しさん sage 2014/12/15(月) 23:02:52.91 ID:BuhXHDiL
さらに言えば、Rubyのブロック変数のスコープの扱いが1.9で仕様変更されてるけど、
それについてmatz自身が
> それは、Rubyが最初から関数型言語としてスタートしてないからであって、言語が違うからですよね。
と語っているね
http://www.atmarkit.co.jp/news/200907/24/ruby.html
2019/04/18(木) 12:54:03.65ID:???
>>951
もうすぐ無くなる言語を引き合いに出してどうするの?
もうすぐ無くなる言語を引き合いに出してどうするの?
2019/04/18(木) 13:09:19.73ID:???
なんだクソ言語がまた「る、るびぃでもできるしっ!」するために考えなしに木に竹を接いだだけかw
954Name_Not_Found
2019/04/18(木) 14:50:50.31ID:q+YWfZ8j2019/04/18(木) 14:52:15.32ID:???
クロージャと無名関数、名前どちらかに統一してほしかった
最初2つが同じものを指すと知らなくて混乱したわ
最初2つが同じものを指すと知らなくて混乱したわ
2019/04/18(木) 14:53:43.68ID:???
>>955
もう少し深くお勉強したほうが良いかも…
もう少し深くお勉強したほうが良いかも…
2019/04/18(木) 14:53:55.42ID:???
クロージャかつ無名関数がよくあるってだけで別。
2019/04/18(木) 15:04:40.55ID:???
単体で使うことほとんどない
2019/04/18(木) 15:05:03.54ID:???
と思ったけどそうでもなっ買った
2019/04/18(木) 15:05:52.76ID:???
無名・匿名関数は、単に名前のない関数。
一方、クロージャは、外のスコープの変数の参照を、つかんでいるもの
Ruby の関数はクロージャではないけど、関数内のブロックがクロージャ。
つまり、2つのスコープを持つ。
ES2015 では、これを真似て、JavaScript にもブロックスコープが出来た
一方、Python は、Rubyの真似をしないから、批判が大きい
一方、クロージャは、外のスコープの変数の参照を、つかんでいるもの
Ruby の関数はクロージャではないけど、関数内のブロックがクロージャ。
つまり、2つのスコープを持つ。
ES2015 では、これを真似て、JavaScript にもブロックスコープが出来た
一方、Python は、Rubyの真似をしないから、批判が大きい
2019/04/18(木) 15:15:08.63ID:???
JavaScriptの関数はクロージャだが、無名とは限らない
2019/04/18(木) 15:31:29.25ID:???
>>960
なるほど、rubyはもうすぐ消えて無くなる言語と
なるほど、rubyはもうすぐ消えて無くなる言語と
2019/04/18(木) 15:53:15.30ID:???
datasetは何のために使うのですか?
2019/04/18(木) 16:00:33.49ID:???
>>960
誰も知らない無名言語のマネはできないなぁw
それとも有名言語のC++やJavaにはブロックスコープが無い、もしくはrupy?とかいう泡沫言語からパクったのかい?w
https://news.ycombinator.com/item?id=5157886
"To me the biggest annoyance about the Ruby community is the belief that they invented everything"
「Rubyコミュニティの連中はヤツラが全てのことを発明したと信じてやがってムカつく」
"People don't hate ruby, people hate the ruby on rails community" "This" "+1 to this"
「Rubyが嫌いなんじゃなくて、Railsコミュニティが嫌いなんだよ」「それな」「ほんこれ」
誰も知らない無名言語のマネはできないなぁw
それとも有名言語のC++やJavaにはブロックスコープが無い、もしくはrupy?とかいう泡沫言語からパクったのかい?w
https://news.ycombinator.com/item?id=5157886
"To me the biggest annoyance about the Ruby community is the belief that they invented everything"
「Rubyコミュニティの連中はヤツラが全てのことを発明したと信じてやがってムカつく」
"People don't hate ruby, people hate the ruby on rails community" "This" "+1 to this"
「Rubyが嫌いなんじゃなくて、Railsコミュニティが嫌いなんだよ」「それな」「ほんこれ」
965Name_Not_Found
2019/04/18(木) 16:42:56.13ID:50TA3Y6O >>963
ある要素になんらかのデータを紐づけたいと思ったら使うのがdataset
・ある要素が処理対象か否かを表すフラグ
・JSライブラリ等に渡すパラメータ
・処理中のデータの一時保存先
なんでも好きなように使うがいい
ある要素になんらかのデータを紐づけたいと思ったら使うのがdataset
・ある要素が処理対象か否かを表すフラグ
・JSライブラリ等に渡すパラメータ
・処理中のデータの一時保存先
なんでも好きなように使うがいい
2019/04/18(木) 17:27:28.90ID:???
2019/04/18(木) 18:15:15.35ID:???
datasetはオレオレ属性作らなくても固有の値持たせられるし、setAttribute/getAttributeを使わなくても直に値を読み書きできるのがメリット
classやidで足りてるなら無理して使わなくてもいいよ
classやidで足りてるなら無理して使わなくてもいいよ
2019/04/18(木) 18:18:55.53ID:???
もらった15パズルのサンプルに含まれていたので、、、
2019/04/19(金) 01:03:15.23ID:???
datasetは単なるdata-*属性の省略記法でしょ
element.dataset.hello = "world";
element.setAttribute("data-hello", "world");
style属性にも同じようなのがある
element.style.bgColor = "#ffffff";
element.setAttribute("style", "background-color:#ffffff;");
element.dataset.hello = "world";
element.setAttribute("data-hello", "world");
style属性にも同じようなのがある
element.style.bgColor = "#ffffff";
element.setAttribute("style", "background-color:#ffffff;");
2019/04/19(金) 03:56:40.90ID:???
>>961
JSの関数はクロージャになり得る能力、ようは要件を備えてるだけで
関数定義が実際クロージャな関数を作ってるのであって
new Function等で定義された関数はクロージャではないし、
デフォの関数のいくつかもクロージャではない
JSの関数はクロージャになり得る能力、ようは要件を備えてるだけで
関数定義が実際クロージャな関数を作ってるのであって
new Function等で定義された関数はクロージャではないし、
デフォの関数のいくつかもクロージャではない
2019/04/19(金) 08:19:53.05ID:???
function hoge() {
return 42;
}
return 42;
}
2019/04/19(金) 08:29:17.99ID:???
PlayCanvasはunityを超えるか?
2019/04/19(金) 12:00:22.33ID:???
vscodeでデバッグしていると時々機能しなくなるのはなぜですか
特定する方法はありますか?
再起動すると治りやんす
特定する方法はありますか?
再起動すると治りやんす
2019/04/19(金) 12:09:16.11ID:???
>>973
今はgodotが勢いあるのでは?
今はgodotが勢いあるのでは?
2019/04/19(金) 13:19:21.72ID:???
>>971
クロージャというのは定義された場所のスコープと関数スコープがチェーンで繋がっているものを言うのであって
定義の仕方が特殊でそれに当てはまらないものはクロージャとは言えない
例えばネイティブ関数はチェーン先を概念的に持っていないし、
new Functionは生成された場所に関わらずglobalThisとリンクされる
クロージャというのは定義された場所のスコープと関数スコープがチェーンで繋がっているものを言うのであって
定義の仕方が特殊でそれに当てはまらないものはクロージャとは言えない
例えばネイティブ関数はチェーン先を概念的に持っていないし、
new Functionは生成された場所に関わらずglobalThisとリンクされる
977Name_Not_Found
2019/04/19(金) 13:25:13.17ID:YQCMjmdd getElementで取り出した要素、例えば
<div class="hoge"〜〜〜 style="xxx">
の中からstyleもしくはxxxの有無を調べたいときはどうやってかけばいいですか?
indexOf("style")やindexOf("xxx")で試しているんですが上手くいきません
hogeを検索する場合、変数名.className.indexOf("hoge")で検索出来るんですがstyleになると上手くいきません
<div class="hoge"〜〜〜 style="xxx">
の中からstyleもしくはxxxの有無を調べたいときはどうやってかけばいいですか?
indexOf("style")やindexOf("xxx")で試しているんですが上手くいきません
hogeを検索する場合、変数名.className.indexOf("hoge")で検索出来るんですがstyleになると上手くいきません
2019/04/19(金) 13:54:13.10ID:???
2019/04/19(金) 14:26:41.04ID:???
classの存在確認もIE9以下案件でないならclassName使わないでclassList.containsを使いましょう
980897
2019/04/19(金) 14:39:51.49ID:??? >>976
> クロージャというのは定義された場所のスコープと関数スコープがチェーンで繋がっているものを言うのであって
> new Functionは生成された場所に関わらずglobalThisとリンクされる
つまりglobalThisが「定義された場所」になるクロージャーですね
> クロージャというのは定義された場所のスコープと関数スコープがチェーンで繋がっているものを言うのであって
> new Functionは生成された場所に関わらずglobalThisとリンクされる
つまりglobalThisが「定義された場所」になるクロージャーですね
2019/04/19(金) 15:03:49.02ID:???
a = window.getComputedStyle(変数,null).getPropertyValue('xxx');
でaを条件分岐に使うことで解決出来ました
もっと簡単にできそうな気がするけど出来たからまぁいいや
でaを条件分岐に使うことで解決出来ました
もっと簡単にできそうな気がするけど出来たからまぁいいや
2019/04/19(金) 16:33:56.23ID:???
2019/04/19(金) 18:49:00.23ID:???
>>980
君にいわせると、すべての関数がクロージャだな
君にいわせると、すべての関数がクロージャだな
984897
2019/04/19(金) 19:00:07.36ID:??? はい。JavaScriptでは関数は全てクロージャーです。
最初からそう言ってるよ
最初からそう言ってるよ
2019/04/19(金) 19:02:48.17ID:???
クロージャではなく、スコープチェーンだろ
本当にこのjQuery君のアホは直らないな
本当にこのjQuery君のアホは直らないな
2019/04/19(金) 19:42:08.58ID:???
JSにおける関数の定義は「[[Call]]内部メソッドを持つオブジェクト」であって
全てクロージャと言うのは横暴だな
全てクロージャと言うのは横暴だな
2019/04/19(金) 19:49:01.93ID:???
もうjqueryでngワード登録でいいんじゃね
2019/04/19(金) 19:54:47.62ID:???
日本は山が多いと言ってあちこちの山を紹介するのは意味があるが
足元の小山まで拾って日本は全て山でできてるなんて言っても何の意味もないのにな
何にも知らない外人に紹介するときは大雑把にそう言っても良いかもしれないが
ここは内輪なんだからあえて山と呼ぶ意味のない山はあえて山と呼ばないほうが適切だろう
足元の小山まで拾って日本は全て山でできてるなんて言っても何の意味もないのにな
何にも知らない外人に紹介するときは大雑把にそう言っても良いかもしれないが
ここは内輪なんだからあえて山と呼ぶ意味のない山はあえて山と呼ばないほうが適切だろう
2019/04/20(土) 01:47:37.29ID:???
わかりやすい
2019/04/20(土) 02:15:19.18ID:???
自演乙。
2019/04/20(土) 06:53:46.46ID:???
可愛そうだけど、自演ではありません
2019/04/20(土) 09:12:23.43ID:???
自演っつーかなりすましがいるな
誰のこととは言わんけどw
誰のこととは言わんけどw
2019/04/20(土) 10:00:50.46ID:???
javascriptのデバッガって何を使うんですか?
vs codeです
vs codeです
2019/04/20(土) 11:44:32.71ID:???
わかりやすい15パズル教えてください
2019/04/20(土) 12:59:37.70ID:???
drawrectを配列で繰り返し表示出来ますかね
アレイみたいな
アレイみたいな
2019/04/20(土) 16:43:25.06ID:???
2019/04/20(土) 17:29:12.53ID:???
>>996
もうちょい簡単なパズルありますかね
もうちょい簡単なパズルありますかね
2019/04/20(土) 17:49:34.93ID:???
3パズル
2019/04/20(土) 17:50:53.90ID:???
3×3 の「〇×」ゲームは?
1000Name_Not_Found
2019/04/20(土) 17:56:20.81ID:??? 次スレ
+ JavaScript の質問用スレッド vol.139 +
http://mevius.5ch.net/test/read.cgi/hp/1555750241/
テンプレは数スレ前のものを持ってきました
足りない場合は適当に追加してください
+ JavaScript の質問用スレッド vol.139 +
http://mevius.5ch.net/test/read.cgi/hp/1555750241/
テンプレは数スレ前のものを持ってきました
足りない場合は適当に追加してください
10011001
Over 1000Thread このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 62日 15時間 43分 24秒
新しいスレッドを立ててください。
life time: 62日 15時間 43分 24秒
レス数が1000を超えています。これ以上書き込みはできません。
ニュース
- 首相、就職氷河期世代の支援表明 週内に関係閣僚会議設置 ★6 [どどん★]
- 【速報】石破首相はNHK番組で、日米の関税交渉「食の安全を譲ることはない」 [蚤の市★]
- 【速報】ドジャース・大谷翔平がパパに! 第1子となる「女児誕生」を報告 早朝から日米のファンが祝福★2 [冬月記者★]
- あぼーん
- 【なおド】佐々木朗希 最長6回2安打2失点と好投も ドジャース救援陣が崩れサヨナラ負けで初勝利またもお預け [鉄チーズ烏★]
- 【TBS】『報道特集』で「死を選んだ理由は立花孝志」との被害者実名の遺書を公開… 立花氏は撮影取材求める★2 [冬月記者★]
- LAD @ TEX ★6
- 2025 SUPER FORMULA Lap6
- 【DAZN】フォーミュラGP【F1 F2F3 SF P】Lap1679
- 【フジテレビ】2025 FORMULA 1【NEXT】Lap89
- こいせん 全レス転載禁止
- とらせん
- 復興派「万博工事のリソースを能登に回せ💢」 一般人「職業選択の自由、居住移動の自由、幸福追求権etc、それ憲法違反です」 [289765331]
- 【悲報】大阪万博➕89000 [616817505]
- 🏡💥🤛👊😅👊🤜💥🏡
- お前らってすぐハロー効果に引っかかるよな
- 日本人ミュージシャンの中孝介さんが不起訴処分、公衆浴場で寝てた男の性器を弄ぶ性的暴行疑いで逮捕 [249548894]
- 東浩紀「暇空氏の勢いを見ると多くの人が左派にウンザリしていたかがよくわかる」😲 [861717324]