X



+ JavaScript の質問用スレッド vol.138 +

レス数が1000を超えています。これ以上書き込みはできません。
2019/02/17(日) 02:12:57.04ID:???
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/
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 ほれ、なおしたぞ。ドヤ?
2019/04/17(水) 17:12:43.80ID:???
出たよrubyのクソ仕様w
C時代の番兵でいろんなスレでアスペ荒らししてたのはRubyのクソ仕様が原因だったwww
2019/04/17(水) 18:16:37.62ID:???
jsでゲーム作るならどんなのが?
2019/04/17(水) 18:24:55.68ID:???
>>928
本人ではないが、サーバサイドスクリプトがクライアントサイドで動くわけなかろう
「サーバで動かせ」という意図ぐらいは察したらどうだ?
2019/04/17(水) 18:49:54.62ID:???
nodeでも動きませんでした。
せめて動くjs書けないのww
2019/04/17(水) 18:57:56.93ID:???
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 などの擬似コードで、考え方・ヒントを教える所

それをヒントにして考える・コードを書くのは、質問者自身がやるべき!

答えをコピペする奴は、進歩もしないし、どうにもならない
2019/04/17(水) 21:26:39.17ID:???
>>937
ruby書くとこじゃねえんだよ
死ねや
939897
垢版 |
2019/04/17(水) 22:13:35.57ID:???
> Ruby などの擬似コードで、考え方・ヒントを教える所

ダメなコードから学べるのは
ダメなコード例です。
2019/04/17(水) 22:22:10.95ID:???
>>937
>Ruby などの擬似コードで、考え方・ヒントを教える所
死ね
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
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

これもう少し簡潔にかけそうな気がしてるんだけど、
すぐに思いつかない。
944897
垢版 |
2019/04/17(水) 23:54:42.95ID:???
jQueryが得意な人は、いろんなものが得意なんやで?w
2019/04/18(木) 02:12:45.30ID:???
>>939
jQueryばかり勧める人がよくいえたもんだな
2019/04/18(木) 08:22:16.98ID:???
https://video.fc2.com/content/20090104qC1kSMF2/&;tk=TnpnMk5EVXdOalU9
947897
垢版 |
2019/04/18(木) 08:36:37.81ID:???
>>945
jQueryを勧めるのはjQueryがふさわしいからであって、
何もアプリを作る時にjQueryなんか勧めませんよ?

ウェブでアプリ作ろうなんて人はめったにいませんからね。
2019/04/18(木) 11:40:31.84ID:???
Ruby, jQuery(JavaScript), Kotlin, Elixir は、関数型言語でもある

でも、Ruby, Kotlinは、オブジェクト指向でもあるから、
その書き方が、jQuery, Elixir からすると、間違いのように言われる

関数型に、オブジェクト指向を混ぜるな、と言われる。
関数型は宣言型だから、手続き型みたいな書き方を嫌がる

関数型でやりすぎると、可読性が悪くなるから、わかりやすい書き方が良い場合もある
2019/04/18(木) 11:57:26.78ID:???
>>948
言語とライブラリを並べて書かれるとなんか変な気分
次元を揃えず計算してるみたいな…
2019/04/18(木) 12:35:37.62ID:???
>>948
それらは関数型言語ではない
血が近いからと言って日本人と中国人が違うのと同じ
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
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+YWfZ8j
>>951
良し悪しなんてないよw
こういう閉じたカタチしてるからclosureって呼ぼうねってだけで
2019/04/18(木) 14:52:15.32ID:???
クロージャと無名関数、名前どちらかに統一してほしかった
最初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の真似をしないから、批判が大きい
2019/04/18(木) 15:15:08.63ID:???
JavaScriptの関数はクロージャだが、無名とは限らない
2019/04/18(木) 15:31:29.25ID:???
>>960
なるほど、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コミュニティが嫌いなんだよ」「それな」「ほんこれ」
965Name_Not_Found
垢版 |
2019/04/18(木) 16:42:56.13ID:50TA3Y6O
>>963
ある要素になんらかのデータを紐づけたいと思ったら使うのがdataset
・ある要素が処理対象か否かを表すフラグ
・JSライブラリ等に渡すパラメータ
・処理中のデータの一時保存先
なんでも好きなように使うがいい
2019/04/18(木) 17:27:28.90ID:???
>>965
classやidとはどう違うのですか?
参考サイト探したんですが、javascriptについては見つからなかったです
2019/04/18(木) 18:15:15.35ID:???
datasetはオレオレ属性作らなくても固有の値持たせられるし、setAttribute/getAttributeを使わなくても直に値を読み書きできるのがメリット
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;");
2019/04/19(金) 03:56:40.90ID:???
>>961
JSの関数はクロージャになり得る能力、ようは要件を備えてるだけで
関数定義が実際クロージャな関数を作ってるのであって
new Function等で定義された関数はクロージャではないし、
デフォの関数のいくつかもクロージャではない
971897
垢版 |
2019/04/19(金) 08:10:45.35ID:???
>>970
JSの関数は全てクロージャーだが
クロージャーにならないものが有るというのなら
それかいてみて(笑)
2019/04/19(金) 08:19:53.05ID:???
function hoge() {
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が勢いあるのでは?
2019/04/19(金) 13:19:21.72ID:???
>>971
クロージャというのは定義された場所のスコープと関数スコープがチェーンで繋がっているものを言うのであって
定義の仕方が特殊でそれに当てはまらないものはクロージャとは言えない
例えばネイティブ関数はチェーン先を概念的に持っていないし、
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になると上手くいきません
2019/04/19(金) 13:54:13.10ID:???
https://developer.mozilla.org/ja/docs/Web/API/HTMLElement/style

要素.style のプロパティを確認する
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が「定義された場所」になるクロージャーですね
2019/04/19(金) 15:03:49.02ID:???
a = window.getComputedStyle(変数,null).getPropertyValue('xxx');
でaを条件分岐に使うことで解決出来ました
もっと簡単にできそうな気がするけど出来たからまぁいいや
2019/04/19(金) 16:33:56.23ID:???
>>927
これのコードありますか
0 0 0 0
0 1 2 0
0 3 x 0
0 0 0 0
これはテトリスかなにかのチュートでみたことはあります
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君のアホは直らないな
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
2019/04/20(土) 10:00:50.46ID:???
javascriptのデバッガって何を使うんですか?
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:???
>>977-981
jQuery で、style の取得・設定は、

<div class="hoge">あ</div>

// 設定
$( '.hoge' ).css( {
backgroundColor: 'Yellow',
color: 'Red'
} );

// 取得。rgb(255, 255, 0)
console.log( $( '.hoge' ).css( 'background-color' ) );

>>982
ソースコードは無い。
15 パズルは難しい。
絶対に解けない問題が作れてしまうから
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 の「〇×」ゲームは?
2019/04/20(土) 17:56:20.81ID:???
次スレ
+ JavaScript の質問用スレッド vol.139 +
http://mevius.5ch.net/test/read.cgi/hp/1555750241/

テンプレは数スレ前のものを持ってきました
足りない場合は適当に追加してください
10011001
垢版 |
Over 1000Thread
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 62日 15時間 43分 24秒
レス数が1000を超えています。これ以上書き込みはできません。
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況