- 1 名前:デフォルトの名無しさん mailto:sage [2021/11/10(水) 15:24:24.80 ID:jxD2VXPG0.net]
- JavaScript を自ら学ぶ人のための質問スレッドです。
>>2-6のテンプレを読んだ上で質問してください。次スレは>>950が>>2のテンプレ案(本スレで改善案があれば考慮)を元に立ててください ■質問を書く上で (1) 煽り、コード制作依頼等、人を不快にさせる投稿はご遠慮下さい。公序良俗を守った応対を心がけてください。 (2) 他の人に迷惑をかけるスクリプトの質問はご遠慮ください。 (ブラクラ、[戻る], [閉じる], [クリック] の妨害、画面占有など) (3) 質問者及び議論を行う人はメール欄を空欄にし、名前にレス番を入れることを強く推奨します。回答者はなりすましを判断できませんので、なりすましが現れても自己責任となります。 (4) 常に自発的に調べる心構えを持ってください。 具体的には「自分で調べてから質問する」「回答をもらってわからない単語があればGoogle検索してみる」など。 わからない内容を代わりに調べてくれる回答者をお望みの方は余所で質問してください。 (5) 出来るだけ一般的な用語を使用してください。脳内オレオレ用語は混乱の元です。 (6) 出来るだけサンプルコードを掲示してください。言葉による説明は行き違いが生まれる場合があります。 ※必ず「問題の事象が再現されること」を確認してください。 必要な部分だけ切り出したつもりで現象が再現できていなかったケアレスミスがしばしば見られます。 (7) サンプルコードに HTML が含まれる場合は validator.w3.org/ で [Check] してみてください。 (8) 質問を具体的かつ詳細に書くと回答を得られやすいです。>>2の質問テンプレートを活用してみてください。 (9) ライブラリ関連の質問は禁止です。関連スレにあるライブラリ質問スレで質問して下さい。 (10) 時にはあなたが望む「答え」だけでなく、「意見」などが寄せられる場合もあります。 ※前スレ + JavaScript の質問用スレッド vol.123 + https://mevius.5ch.net/test/read.cgi/tech/1491143438/ VIPQ2_EXTDAT: checked:vvvvvv:1000:512:: EXT was configured
- 52 名前:デフォルトの名無しさん mailto:sage [2021/11/16(火) 19:57:25.19 ID:ES2RXggH0.net]
- switchの中をObject.keys().forEach()でまわして
addFunc[+i.value]で作り直したらすっきりしそう いじりたくなるコードだけど可読性を考えたらこれはこれなのか
- 53 名前:デフォルトの名無しさん mailto:sage [2021/11/16(火) 22:10:30.79 ID:iK58PKMQ0.net]
- リアクトでのスマホアプリ開発なんですが、エミュレータは何がお勧めですか?
というのも実機を持っていません。 また、実機を使う場合はアンドロイド5などは使い物になりますか? 古い機種に合わせて作っても、上位互換性のないソフトになるんでしょうか?
- 54 名前:デフォルトの名無しさん mailto:sage [2021/11/17(水) 07:47:58.17 ID:/ZY56h0o0.net]
- >>52
「React andoridアプリ開発 エミュレータ」で検索どうぞ 「api16 開発 不具合 or 互換性」で検索どうぞ これがベストっていう答えがないから 開発者が自分で試行錯誤して答えを出す問題かな 互換性の問題は作るものによっても違うからね jellyならそんな問題ないとおもうけど
- 55 名前:デフォルトの名無しさん mailto:sage [2021/11/17(水) 10:05:17.45 ID:syddc80l0.net]
- >>53
jellyッテの調べてみますです
- 56 名前:デフォルトの名無しさん mailto:sage [2021/11/17(水) 14:33:19.47 ID:syddc80l0.net]
- >>53
すみません。互換性に関して見つけられなかったです。 android5向けに作った場合、上位互換性ってあるんでしょうか? javascriptのバージョン?次第とも考えられますけど
- 57 名前:デフォルトの名無しさん mailto:sage [2021/11/17(水) 17:43:10.56 ID:+3kxan1mM.net]
- androidの話はandroid開発スレで聞いてくれ
多分実機なしは無謀、5は古すぎでFA
- 58 名前:デフォルトの名無しさん mailto:sage [2021/11/18(木) 06:50:53.17 ID:TN6Tj1JF0.net]
- >>56
了解す
- 59 名前:デフォルトの名無しさん mailto:sage [2021/11/18(木) 07:17:54.57 ID:DvlppRWo0.net]
- そんなことはない
android5で使えるアプリが目的なんだから android5で作成するのがベスト reactNativeエンジンがどうエンコードして androidで動かしてるのか分らんので 今のreactでandroid5のどの機能を使えるのか 全然わからんけどな
- 60 名前:デフォルトの名無しさん mailto:sage [2021/11/18(木) 07:27:37.77 ID:dAtvmzd9M.net]
- React NativeはAndroid 5.0以上に対応だね
https://github.com/facebook/react-native
- 61 名前:デフォルトの名無しさん mailto:sage [2021/11/18(木) 19:32:55.35 ID:DvlppRWo0.net]
- API21からなんだな
- 62 名前:デフォルトの名無しさん mailto:sage [2021/11/19(金) 12:50:28.04 ID:zuBm2fI80.net]
- 文字列化した数式を計算させるにはどうやればいいんですか?
test("x*x+10",2); function test(suushiki_str,x){ var y = suushiki_str(この場合x*x+10)でx=2を代入; retuen(y) } こういうのがやりたいんだけど
- 63 名前:デフォルトの名無しさん mailto:sage [2021/11/19(金) 12:55:11.51 ID:CS9Fe95O0.net]
- function test(suushiki_str,x){
return eval(suushiki_str) }
- 64 名前:デフォルトの名無しさん [2021/11/19(金) 13:17:09.00 ID:zuBm2fI80.net]
- >>62
ありがとー
- 65 名前:デフォルトの名無しさん mailto:sage [2021/11/19(金) 13:41:30.73 ID:5MAibbygM.net]
- 何がしたいのか分からないけど、設計自体が間違ってる気がするけどなあ
- 66 名前:デフォルトの名無しさん mailto:sage [2021/11/19(金) 21:34:02.13 ID:FkG8ODwP0.net]
- eval is evil
evalをそのまま使う事はまずないな
- 67 名前:デフォルトの名無しさん mailto:sage [2021/11/20(土) 07:02:21.23 ID:0rDRyz8e0.net]
- evalを使えとなw
- 68 名前:デフォルトの名無しさん mailto:sage [2021/11/20(土) 07:04:06.68 ID:0rDRyz8e0.net]
- evalが生きていること自体、JSが未成熟の証
- 69 名前:デフォルトの名無しさん mailto:sage [2021/11/20(土) 07:46:31.86 ID:0rDRyz8e0.net]
- >>61
evalは非推奨だから function test(fun,x){ return fun(x); } test(function(x){return x*x+10},5); としときましょう
- 70 名前:デフォルトの名無しさん [2021/11/20(土) 18:55:29.17 ID:BgP9vp1q0.net]
- evalって外部から入力させなければ使っても問題ないんじゃないの?
- 71 名前:デフォルトの名無しさん mailto:sage [2021/11/20(土) 18:57:47.86 ID:0rDRyz8e0.net]
- 使いたければつかったらいいよ
- 72 名前:デフォルトの名無しさん mailto:sage [2021/11/20(土) 19:05:52.91 ID:Gd107dzfr.net]
- やっぱjavascriptできるとなんでも作れるな
めちゃくちゃ便利だわ
- 73 名前:デフォルトの名無しさん mailto:sage [2021/11/20(土) 19:54:48.88 ID:0rDRyz8e0.net]
- ブラウザ限定だし
HTMLと一緒でメンテナンスとか関係なければな もしJSで金融システムみたいな厳格なシステム作ろうとしたら 開発者はみんな気がくるってしまうんじゃないかな
- 74 名前:デフォルトの名無しさん mailto:sage [2021/11/20(土) 19:57:24.06 ID:Gd107dzfr.net]
- マジでjavascriptだけでめちゃくちゃ儲けてる
使いこなせばガチで素晴らしい
- 75 名前:デフォルトの名無しさん [2021/11/20(土) 20:02:17.98 ID:4VXr5Xxs0.net]
- 仕事で使ってるサイトをJavascriptで自動化できませんか?
たとえば出勤と退勤のときの時間を管理するのに「勤次郎」というサイトを使ってるんだけど 毎回ログインしたあといちいち入力するのが面倒くさい。
- 76 名前:デフォルトの名無しさん mailto:sage [2021/11/20(土) 20:22:43.02 ID:0rDRyz8e0.net]
- >>74
データーの保存はどこを想定してますか?
- 77 名前:デフォルトの名無しさん mailto:sage [2021/11/20(土) 20:24:55.79 ID:b48agA+u0.net]
- seleniumでいいじゃん
- 78 名前:デフォルトの名無しさん mailto:sage [2021/11/20(土) 20:46:00.92 ID:Gd107dzfr.net]
- 認証しないシステムなんて攻撃か踏み台にされるとか考えないのか
- 79 名前:デフォルトの名無しさん mailto:sage [2021/11/20(土) 21:05:08.87 ID:t4XZd1270.net]
- 定型をポチポチ入力してボタン押すのがダルい程度ならブックマークレットでいいだろ
- 80 名前:デフォルトの名無しさん mailto:sage [2021/11/21(日) 08:08:40.09 ID:zYUtuXs90.net]
- >>74
ブラウザを自動操作なら、iMacros は? 例えば漏れは、Ruby のselenium-webdriver で、 ブラウザを自動操作して、ヤフーにログインしてる ユーザー名を入力して、ボタンを押す。 パスワードを入力して、ボタンを押すとか require "selenium-webdriver" options = Selenium::WebDriver::Chrome::Options.new options.add_option( :detach, true ) # ブラウザを切り離す options.add_argument( '--start-maximized' ) # 画面最大 driver = Selenium::WebDriver.for :chrome, options: options driver.manage.timeouts.implicit_wait = 10 # default timeout driver.navigate.to "https://login.yahoo.co.jp/config/login_verify2?.src=ym" element = driver.find_element(:id => "username") element.send_key "ユーザー名" driver.find_element(:id => "btnNext").click # ボタンを押す element = driver.find_element(:id => "passwd") element.send_key "パスワード" driver.find_element(:id => "btnSubmit").click # ボタンを押す
- 81 名前:デフォルトの名無しさん [2021/11/21(日) 18:31:02.25 ID:8Vc5P3wO0.net]
- >>768
それだと数式を""で囲んで文字列にすると計算できない
- 82 名前:デフォルトの名無しさん [2021/11/21(日) 18:31:35.22 ID:8Vc5P3wO0.net]
- >>68だ
- 83 名前:デフォルトの名無しさん [2021/11/21(日) 19:15:18.38 ID:s72Bw1rA0.net]
- classが非推奨になるのはいつですか?
- 84 名前:デフォルトの名無しさん mailto:sage [2021/11/21(日) 19:23:58.62 ID:6CiZCeOJ0.net]
- >>82
その予定はない
- 85 名前:デフォルトの名無しさん mailto:sage [2021/11/21(日) 21:16:08.25 ID:CIU/fTVN0.net]
- >>81
>>70で答えてる eval非推奨な意味を理解していて使うならそれでいいんじゃね?
- 86 名前:デフォルトの名無しさん mailto:sage [2021/11/21(日) 21:19:33.19 ID:QvzeRvg10.net]
- >>61
function test(suushiki_str, x){ var f = Function('x', 'return ' + suushiki_str); return f(x); } test('x * x + 10' ,2); //=> 14
- 87 名前:デフォルトの名無しさん mailto:sage [2021/11/21(日) 22:55:28.72 ID:EhgufZNWr.net]
- javascriptが使えるとやりたいことが簡単にできる
- 88 名前:デフォルトの名無しさん [2021/11/22(月) 11:19:44.15 ID:svQfIHqM0.net]
- >>86
JavaScript最強伝説。
- 89 名前:デフォルトの名無しさん mailto:sage [2021/11/22(月) 14:30:42.59 ID:zL7mhfu3r.net]
- ブラウザで動く
LambdaやGoogle Functionsで動く デスクトップアプリも作れる OfficeWeb版やGASでも動く インフラ構築不要で最強すぎるだろ
- 90 名前:デフォルトの名無しさん [2021/11/22(月) 16:46:08.87 ID:svQfIHqM0.net]
- >>88
でも、文法が分かりにくい。 というか無駄に複雑過ぎる。
- 91 名前:デフォルトの名無しさん mailto:sage [2021/11/22(月) 16:48:25.46 ID:zL7mhfu3r.net]
- >>89
文法なんかふつう 複雑な意味がわからん ほかの言語だと単純なの?
- 92 名前:デフォルトの名無しさん mailto:sage [2021/11/22(月) 17:43:25.62 ID:+p8qnn8E0.net]
- すいません、下記のように読み込んだshiftJISのcsvファイルを
正規表現を使って置換しようとしてるのですがうまくいきません 文字コードの問題なのか指定したマッチパターン意外の色んな文字が勝手に置換されてしまいます const requestCSV = new XMLHttpRequest(); requestCSV.overrideMimeType('text/plain; charset=Shift_JIS');//csvの文字コードがshiftJSであることは変更できない requestCSV.addEventListener('load', (event) => { const orgCSV = event.target.responseText; tempKey="["+key+"]";//keyは変数を使う必要があります keyName = new RegExp(tempKey, "g");//複数マッチさせる必要があります result=orgCSV.replace(keyName, "ほげ"); } 正規表現オブジェクトを使わずにreplaceさせると問題なく動くのですが、 マッチパターンを変数にしたいのと、複数回以上にマッチさせるため g をつけるため、 正規表現オブジェクトを使わざるを得ない状態です。 どなたかアドバイスお願いできますでしょうか
- 93 名前:デフォルトの名無しさん mailto:sage [2021/11/22(月) 17:45:45.05 ID:svQfIHqM0.net]
- >>90
Javaの方が分かりやすかった。
- 94 名前:デフォルトの名無しさん mailto:sage [2021/11/22(月) 18:41:55.55 ID:kseOISZ70.net]
- Javaと比べたらJavaScriptのほうが文法複雑じゃないと思うが…
TypeScriptと混同してない?
- 95 名前:デフォルトの名無しさん mailto:sage [2021/11/22(月) 18:43:22.51 ID:kseOISZ70.net]
- それかDOM APIをJavaScriptの文法に含むと勘違いしてるとか
- 96 名前:デフォルトの名無しさん [2021/11/22(月) 18:50:50.35 ID:jaRoUi/NM.net]
- Javaのほうが圧倒的にすっきりしている。
ほんとに両言語をちゃんと勉強したことあるか? アルツハイマーでもこれくらい分かる。
- 97 名前:デフォルトの名無しさん mailto:sage [2021/11/22(月) 18:53:04.86 ID:yUT2zM6b0.net]
- >>91
keyを[]で囲む必要なし
- 98 名前:デフォルトの名無しさん mailto:sage [2021/11/22(月) 18:54:55.94 ID:LGR+CB3F0.net]
- >>94
古いJSとの互換性を取ろうとすると 古い文法も理解しないとならないからな オブジェクトの生成も多種多様 JSの細かいところまで理解しようとすると javaやpythonとかのほうが整理されていてわかりやすい let obj var objのLexicalの違いや let obj={} let fun=function(){} function fun(){} class cs extends fun{} class cs{ __proto__=a; } obj.constructor.prorotype=obj newObjext ,Object.create こんなのシンプルなわけがない と92はいいたんだと思う
- 99 名前:デフォルトの名無しさん mailto:sage [2021/11/22(月) 19:05:02.79 ID:+p8qnn8E0.net]
- >>96
"["+key+"]" というようにカッコで囲んだ形式で検索したいのでここはあえてそうしてるんです…
- 100 名前:デフォルトの名無しさん mailto:sage [2021/11/22(月) 19:40:22.23 ID:kseOISZ70.net]
- Java
class Main { public static void main(String[] args) { System.out.println("Hello World!"); } } JavaScript console.log("Hello World!"); hello worldからしてこれだからな あなたの「シンプル」の定義を見せてもらえないと…
- 101 名前:デフォルトの名無しさん mailto:sage [2021/11/22(月) 20:19:16.63 ID:LGR+CB3F0.net]
- >>99
JSのクラスは疑似クラス 他言語のClassと同じように扱えるように functionを疑似的にclass表現できるようにしてるだけ Javaと異なりJSはconstructorを有するオブジェクトの生成方法が沢山ある それすら理解できずに、99の問いとは、、、もっとJSを勉強しようぜ Javaのほうが圧倒的に整理され覚える文法が少ない つか、JavaとJS、両方ともそこそこ使えたら 99みたいなこと言えないだろw
- 102 名前:デフォルトの名無しさん mailto:sage [2021/11/22(月) 20:26:36.75 ID:LGR+CB3F0.net]
- >>99
もうちょっと言わせてもらえば Javaは変数エラーをチェックしやすい言語設計 JSは変数エラーを無限に生成し得る言語設計 JSはマークアップを動的に処理することから発生し 高度な言語設計にしても互換性の問題から 古い文法を生かしているので、とても複雑怪奇になっている そう表現したらわかるかな?
- 103 名前:デフォルトの名無しさん mailto:sage [2021/11/22(月) 20:44:07.24 ID:LDcgDFlhM.net]
- 変数エラーとは
- 104 名前:デフォルトの名無しさん mailto:sage [2021/11/22(月) 20:52:35.36 ID:LDcgDFlhM.net]
- >>98
上手く行かない具体例出してよ ぶっちゃけ[ ]の使い方ミスってる様な気がするんだけど
- 105 名前:デフォルトの名無しさん mailto:sage [2021/11/22(月) 23:07:56.11 ID:+p8qnn8E0.net]
- >>103
置換した具体例で言うと例えば さっきの例で置換部分が result=orgCSV.replace(keyName, "ほげ"); 元のテキストが下記だとすると <title>[name]</title> 結果が下記になってしまってなんじゃこりゃ…て感じですね <titlほげ>[ほげaほげほげ]</titlほげ> 正規表現オブジェクトを使わなければ普通に成功します result=orgCSV.replace("[name]", "ほげ"); //<title>ほげ</title>になる しかし先述のようにマッチパターンを変数化しつつgをつけて複数置換する必要があるため難しいんです…
- 106 名前:デフォルトの名無しさん mailto:sage [2021/11/22(月) 23:44:57.26 ID:yUT2zM6b0.net]
- >>104
tempKey="\\["+key+"\\]";
- 107 名前:デフォルトの名無しさん [2021/11/22(月) 23:59:47.75 ID:LPlgTaUb0.net]
- javascriptで計算の値がオーバーフロウするかどうかを調べるにはどうすればいいんですか?
例えば10000の10乗を計算しようとしてオーバーフロウするならばalertで計算できませんと 表示したいんだけど
- 108 名前:デフォルトの名無しさん mailto:sage [2021/11/23(火) 00:04:12.05 ID:KUvc8h5G0.net]
- >>104
[] は文字クラス https://developer.mozilla.org/ja/docs/Web/JavaScript/Guide/Regular_Expressions/Character_Classes 更に、keyにメタキャラクタがあれば同じ事になるので、文字列全体をエスケープすべき https://developer.mozilla.org/ja/docs/Web/JavaScript/Guide/Regular_Expressions#escaping 上記は正規表現の基本 正規表現を体系的に学習すれば、絶対に気がついたこと 急がば回れ
- 109 名前:デフォルトの名無しさん mailto:sage [2021/11/23(火) 00:07:12.09 ID:KUvc8h5G0.net]
- >>106
BigIntと文字列比較
- 110 名前:デフォルトの名無しさん mailto:sage [2021/11/23(火) 00:24:05.58 ID:t+JcGiN60.net]
- >>100
なんでクラスの話に?詭弁では? クラスベースの奴らがうるさいからclassなんて入れる羽目になったんだが。 そいつらのせいで木に竹を接ぐようなことさせられてむしろ複雑になった。 プロトタイプベースとしてシンプルでよかったのにほんと独善的でろくなことしない。 Reactでもクラスコンポーネントは廃れ99%のケースでFCになったよ。
- 111 名前:デフォルトの名無しさん [2021/11/23(火) 01:06:21.92 ID:cKz+CerT0.net]
- >>109
エセクラスベースは絶対に反対。 classは早期に非推奨にすべき。
- 112 名前:デフォルトの名無しさん mailto:sage [2021/11/23(火) 01:17:09.89 ID:SfFCbJaV0.net]
- >>105
>>107 ああ、なるほど、エスケープをダブルでつけないといけなかったんですね シングルではつけてみていたんですがそれで動かなかったのであれって思ってました 資料の提示もありがとうございます!
- 113 名前:デフォルトの名無しさん mailto:sage [2021/11/23(火) 07:20:19.58 ID:A/hfu3xU0.net]
- >>102
その問いはマジ質問? >>109 JavaとJsの言語設計に関して どっちがすっきりしてるかを話ししてるだけだろ 疑似クラスなんてあること自体がお笑いだし オブジェクト生成方法も多岐にわたるとか どこが整理されてる言語なのかと
- 114 名前:デフォルトの名無しさん mailto:sage [2021/11/23(火) 07:33:58.18 ID:MZ1To5x7M.net]
- 変数エラーでググっても出てこなかったです
何処の業界用語ですか?
- 115 名前:デフォルトの名無しさん mailto:sage [2021/11/23(火) 08:34:50.37 ID:Ln8GWMq+0.net]
- >>104
Ruby では、Regexp.escape で、 正規表現において、特別な意味を持つ文字の直前に、 エスケープ文字(バックスラッシュ)を挿入した、文字列を返す p esc_1 = Regexp.escape( "[-a]" ) #=> "\\[\\-a\\]" reg_1 = Regexp.new( esc_1 ) p reg_1.match( "x[-a]y" ) #<MatchData "[-a]">
- 116 名前:デフォルトの名無しさん mailto:sage [2021/11/23(火) 09:26:25.23 ID:AKV1HaX9M.net]
- >>112
お笑いと言えばJavaの無名クラスだろ なんだったのアレ 関数がファーストクラスオブジェクトじゃなかった欠陥言語の苦肉の策とは言えとんでもなくキッタネェコード 今じゃラムダ関数使ってだーれも使ってないし 最初からそうしとけばよかったのにね ぜんぜん整理されてなかったのかな?w
- 117 名前:デフォルトの名無しさん mailto:sage [2021/11/23(火) 10:33:28.85 ID:9dlC3Wki0.net]
- 言語の完成度はJava>JS
学びやすさもJava>JS だからと言って優劣を表現してるわけじゃないよ マークアップ操作言語として JS、HTML、CSS等との新旧互換性を担保しながら 成
- 118 名前:長してきた言語だから
継ぎ接ぎ言語になっているのは仕方ないこと JSでできることは多いし楽しい言語であることを否定してるわけじゃないんだ でもJSが整理されてシンプルな言語であるとは言えないってだけ [] - [ここ壊れてます]
- 119 名前:デフォルトの名無しさん mailto:sage [2021/11/23(火) 10:45:11.29 ID:jndULnQpr.net]
- javascriptさえあれば何もいらん
javascriptだけでスケーラブルなシステムが作れる
- 120 名前:デフォルトの名無しさん mailto:sage [2021/11/23(火) 10:52:32.71 ID:AKV1HaX9M.net]
- あまりにも面倒くさいため、誰もJavaでGUIを作らなくなりました。
やる気とAWT,Swingなど道具立てはあったのです。 ただJavaがクソ過ぎた。 イベントドリブンで必須のリスナー登録はこんな感じ(笑) button1.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { System.out.println("clicked"); } }); 一方C#ではデリゲートで簡単に書くことができました。 Javaはデリゲートが言語機能として無いのでマネできませんでしたw 結果今では誰もJavaでクライアントGUIプログラムを書きませんがC#はバリバリ使われてますw 結局Java8でJavaScriptをパクってlambdaで以下のように書けるようにしました(ハズカシーw) button1.addActionListener(e -> System.out.println("clicked")); しかし時すでにお寿司、誰もJavaでGUIを作っていないのであるwww Javaはサーバーサイドに集中して成功者? ノンノンw Javaが糞でめんどくさくて誰も書かなくなったから廃れた、これがシンプルな答えですw
- 121 名前:デフォルトの名無しさん mailto:sage [2021/11/23(火) 11:43:58.38 ID:9dlC3Wki0.net]
- うん、わかった
確かにその通りです
- 122 名前:デフォルトの名無しさん mailto:sage [2021/11/23(火) 15:55:58.57 ID:MdPJopiF0.net]
- Android StudioではまだJava言語で開発が必要だったような
- 123 名前:デフォルトの名無しさん mailto:sage [2021/11/27(土) 15:29:53.92 ID:czi6N/jr0.net]
- 0から9の入ったランダムの配列に適当に選んだnという数字が最大何個並んでいるか
これはどういう方法が早いのでしょうか 気にするほどでもないのでしょうか 配列を見ていくのは遅いとか言う話も聞いたような気もします 一般的にはどういう方法を取るのでしょうか ・配列の前から順にforでnであるか、あればカウンターインクリメント、なければカウンターリセット ・joinで配列を文字列化したあとforでi文字数ぶんのnを検索文字として includesがfalseになるまでか最悪配列数まで調べる ・文字列化したあとmatchで/n+/gで一覧を出して一覧の配列をmap(e=>e.length)で文字数にしてMath.maxで調べる
- 124 名前:デフォルトの名無しさん mailto:sage [2021/11/27(土) 17:26:03.23 ID:YexJKObKM.net]
- >>121
まずは自分で試して比べろよ
- 125 名前:デフォルトの名無しさん mailto:sage [2021/11/27(土) 20:27:12.12 ID:czi6N/jr0.net]
- コードはこんな感じでいいですか?
https://jsfiddle.net/rj457v0q/ windows10 firefox 64bit 94.0.2のabout:newtabのコンソールでやった結果 11374, 1970, 2920 とかそれに似たような時間なんですが 同じ環境でJSFiddle に保存した際に実行された時間が 320, 1994, 2938 と1番目が早くなって結果が真逆になっています どういう事なんでしょうか
- 126 名前:デフォルトの名無しさん mailto:sage [2021/11/27(土) 21:17:39.73 ID:czi6N/jr0.net]
- IronというChromeベースのブラウザでも試したところ
FirefoxからJSFiddleを開いてそこで走らせた時間と同じような結果になりました
- 127 名前:デフォルトの名無しさん mailto:sage [2021/11/27(土) 22:00:25.94 ID:w/hwUzDX0.net]
- element.addEventListener(
"mousemove", function(e){alert(e.offsetX);} ); このfunction(e)の部分はfunction(aaa,e,bbb){}のように引数を複数設定することはできますか? e以外を渡すにはグローバルしかできないんですか?
- 128 名前:デフォルトの名無しさん mailto:sage [2021/11/27(土) 23:25:49.55 ID:QiKYnGor0.net]
- >>123
Firefox の Math.max() が激重っぽい(1万回の関数呼び出しが重い?) 三項演算子とかにすれば JSFiddle と同じくらい早くなる
- 129 名前:デフォルトの名無しさん mailto:sage [2021/11/27(土) 23:48:23.24 ID:czi6N/jr0.net]
- >>126
ありがとうございます。 Math.maxを使わず、 配列のまま計算させたほうがいいみたいですね。 3つ目もMath.maxを使ってますが使わないようにしても、 こちらはMath.max関数の呼び出し回数が1周1回なせいか短縮されませんでした。
- 130 名前:デフォルトの名無しさん mailto:sage [2021/11/28(日) 12:42:42.78 ID:TNNdgbH5M.net]
- >>123
1つめのバグっとるよ 2つめのは連続する数が大きいのでも確かめないとパフォーマンス特性が分からない jsbench.meみたいなところで試すといい アルゴリズムのオーダー考えれば単純ループが一番高速
- 131 名前:デフォルトの名無しさん mailto:sage [2021/11/28(日) 21:15:40.16 ID:P+UGlIn90.net]
- >>125
引数を複数設定できる。ただし、第一引数以外は何も渡されない。(デフォルト引数なんかの例外もある) thisを渡せる。bind()とhandleEvent()を含むオブジェクトで渡せる。
- 132 名前:デフォルトの名無しさん mailto:sage [2021/11/28(日) 21:21:54.23 ID:PdYmCZpH0.net]
- >>128
ありがとうございます サイトは次使う時に使って見たいと思いますw
- 133 名前:デフォルトの名無しさん mailto:sage [2021/11/28(日) 21:29:03.95 ID:eSM912u0M.net]
- >>125
どんな使い方をするのか想定コードを教えて あと代入されるaaa,bbbの値はいつ確定する? 呼び出し時に確定するなら変数で置いとくしか無いし 関数定義する時点で確定してるなら引数にする必要が無い
- 134 名前:デフォルトの名無しさん mailto:sage [2021/11/29(月) 12:33:33.13 ID:nUjIBrRJ0.net]
- >>131
canvasの領域内をクリックしながらマウスを移動させたときの canvas内のマウスの座標を得たいんだけど mousedownでvar clickcyuu = 1;mouseupでclickcyuu=0; mousemoveでclickcyuu===1ならばdrag_mouse_x = e.offsetX;drag_mouse_y = e.offsetY とやりたかったのでfunction(e,clickcyuu){}としたかった
- 135 名前:デフォルトの名無しさん mailto:sage [2021/11/29(月) 13:18:58.10 ID:kIPjw4qWM.net]
- >>132
それだと結局グローバル変数参照してるのと同じじゃない? わざわざ引数経由する理由がない
- 136 名前:デフォルトの名無しさん mailto:sage [2021/11/29(月) 13:23:14.24 ID:T3PYHNfj0.net]
- >>132
>>129の方法ではダメなのか?
- 137 名前:デフォルトの名無しさん mailto:sage [2021/11/29(月) 15:20:06.33 ID:0iOICyJy0.net]
- 定期的にaddEventListener自体から引数渡したいって人出てくるけど
仮にできたとしてもaddEventListenerした時点で値が固定されることが考えから抜け落ちてるよね >>132 引数渡したいならイベントハンドラに関数式使えば済むけど 複数のイベント仕込むなら一連の動作をこんな感じでclassかオブジェクトにした方が楽よ https://jsfiddle.net/hgro7t5m/
- 138 名前:デフォルトの名無しさん mailto:sage [2021/11/29(月) 15:41:30.31 ID:cAtmNTK4M.net]
- クロージャ使えば普通にできるやろ
それに参照型ならaddEventListenerした後からでも値を変えられるよ
- 139 名前:デフォルトの名無しさん mailto:sage [2021/11/29(月) 18:56:58.07 ID:QQHq1BUR0.net]
- var か
- 140 名前:デフォルトの名無しさん mailto:sage [2021/11/29(月) 20:17:26.02 ID:T3PYHNfj0.net]
- >>135
オブジェクトを束縛すれば、プロパティは固定されない(>>129) handleEventも使ってみればその有用性に気がつくと思うが
- 141 名前:デフォルトの名無しさん mailto:sage [2021/12/04(土) 12:18:05.48 ID:Zxe83BGy0.net]
- 読み込みたいファイルのパスだけがわかっている場合に
reader= new FileReader(); reader.readAsText("aaa/hoge.csv") ; みたいな感じで読み込もうと思ったんですが、 readAsTextの引数はblobだかfileオブジェクトでないとだめみたいで、 レファレンスを読んで見るも、 パスから
- 142 名前:blogだかfileオブジェクトだかを作成する方法がわかりませんでした。
ファイル読み込み自体は他の方法を使ってできるものの、 FileReaderとreadAsTextの組み合わせを使ってトライしてみたいので どなたかアドバイスお願いできますでしょうか [] - [ここ壊れてます]
- 143 名前:デフォルトの名無しさん mailto:sage [2021/12/04(土) 12:36:24.21 ID:6Q/yxXZX0.net]
- >>139
それが出来たら、ファイルの情報を盗み出せるようになるな
- 144 名前:デフォルトの名無しさん mailto:sage [2021/12/04(土) 12:48:45.94 ID:Zxe83BGy0.net]
- >>140
例えばxmlhttpRequest()でもパスからファイルを読み込むことが出来るので FileReaderでそれが出来ないのは不思議な気になるんですがそういうものなんですかね
- 145 名前:デフォルトの名無しさん mailto:sage [2021/12/04(土) 14:35:37.60 ID:t4TtjIXNM.net]
- むしろ他の方法とやらが気になる
- 146 名前:デフォルトの名無しさん mailto:sage [2021/12/04(土) 14:36:47.65 ID:6Q/yxXZX0.net]
- >>141
xhrは基本的にhttp接続しか出来ない
- 147 名前:デフォルトの名無しさん mailto:sage [2021/12/04(土) 16:15:20.01 ID:4OadB/pcM.net]
- とりあえずリファレンス読め
https://developer.mozilla.org/en-US/docs/Web/API/File/Using_files_from_web_applications
- 148 名前:デフォルトの名無しさん mailto:sage [2021/12/07(火) 11:51:05.11 ID:sVKUttQ/0.net]
- ガチでヌーブなんですけどrequestsとbeautifulsoupでスクレイピングやってます
waitかけないとバンされるよと言われましたがどうすればいいですか? requests.get()でtimeoutは今書きましたがforで同じサイトの似たようなページに何度もアクセスするのでサーバーへの負荷はすごいと思います これに対してどうすればいいですか?
- 149 名前:デフォルトの名無しさん mailto:sage [2021/12/07(火) 11:56:58.02 ID:PaA+NeG00.net]
- >>145
マルチ禁止
- 150 名前:デフォルトの名無しさん mailto:sage [2021/12/09(木) 15:07:14.43 ID:uyimWi/30.net]
- const test = [
{main:"A"}, {main:"B"}, {main:"C"} ] から全てのmainをとり出した["A","B","C"]となる配列を作りたいです forを使えば作れますが、もっと簡単に作れる便利なメソッドあったりしますか?
- 151 名前:デフォルトの名無しさん mailto:sage [2021/12/09(木) 15:32:51.58 ID:gfmL2AFS0.net]
- const test = [
{main:"A"}, {main:"B"}, {main:"C"} ] let testB = test.map(e=>e.main) 知っててコレジャナイ方法をきいてるのかもしれないけど
- 152 名前:デフォルトの名無しさん mailto:sage [2021/12/09(木) 15:38:12.28 ID:uyimWi/30.net]
- >>148
自分もそれやってたけど不可能なので質問しましたが どうやらqueryselectorAllにmapが効かないっていうのが原因だったみたいです すんません
|

|