のくす牧場
コンテンツ
牧場内検索
カウンタ
総計:127,062,848人
昨日:no data人
今日:
最近の注目
人気の最安値情報

    私的良スレ書庫

    不明な単語は2ch用語を / 要望・削除依頼は掲示板へ。不適切な画像報告もこちらへどうぞ。 / 管理情報はtwitter
    ログインするとレス評価できます。 登録ユーザには一部の画像が表示されますので、問題のある画像や記述を含むレスに「禁」ボタンを押してください。

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

    JavaScript スレッド一覧へ / JavaScript とは? / 携帯版 / dat(gz)で取得 / トップメニュー
    スレッド評価: スレッド評価について
    みんなの評価 :
    タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。
    レスフィルター : (試験中)
    ←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitter
    551 : Name_Not - 2018/07/25(水) 21:49:37.98 ID:???.net (-27,-29,-19)
    どうせならTensorFlow.jsでモデル作ろうぜ
    552 : Name_Not - 2018/07/25(水) 22:11:01.44 ID:???.net (+22,+29,-29)
    >>551
    不規則動詞を原形にするのにニューラルネット使うなんてミスマッチ過ぎるw
    はやりに踊らされるディープバカ。
    553 : Name_Not - 2018/07/26(木) 06:38:06.00 ID:???.net (+32,+29,-69)
    ニューラルネットってWebと相性が良いと思う
    データの量にかかわらず指定したサイズと計算負荷のモデルを作ることができるし
    それを蒸留してモバイル向けにサイズと計算負荷が1/5のものを用意するとかも簡単にできる
    554 : Name_Not - 2018/07/26(木) 08:36:01.63 ID:???.net (+15,+24,-1)
    ディープバカwwww
    556 : Name_Not - 2018/07/26(木) 15:11:24.15 ID:???.net (+27,+29,-16)
    法廷ドラマみたいな問い質し方でワロタwwwww
    559 : Name_Not - 2018/07/26(木) 20:11:46.36 ID:???.net (-22,-25,+0)
    >>558
    なぜ2回、matchするんだ?
    560 : Name_Not - 2018/07/26(木) 20:34:38.81 ID:???.net (-5,-30,-128)
    言う前に先越されたかw

    >>558
    そんな、RegExpの挙動をちゃんと知らないと理解できないような
    読み解くのに時間がかかるようなコードかかないで
    分かりやすくかけよ。だから>>559みたいなレスが来る

    ary = [...Array(str.match(reg).length)].map(_=>reg.exec(str))
    // ...Array 大好き人間かよ。 新しい技を手に入れたらそればっかり使いたくなる癖は直したほうが良いぞ

    ary = str.match(reg).map(_=>reg.exec(str));
    // 短いがこれも分かりづらい。_を捨てて何故動くんだよ?ってなる


    reg1 = /\d+\w/g
    reg2 =/\d+(\w)/
    ary = str.match(reg1).map(i=>reg2.exec(i));
    // 推奨。わざわざ変数に入れなくてもよいが
    561 : Name_Not - 2018/07/26(木) 20:37:34.81 ID:???.net (-27,-30,-28)
    > // 推奨。わざわざ変数に入れなくてもよいが
    変数に入れなくて良いのは正規表現ね

    ary = str.match(/\d+\w/g).map(i=>/\d+(\w)/.exec(i));

    ということ
    563 : Name_Not - 2018/07/26(木) 20:43:23.88 ID:???.net (-26,-30,-57)
    Ruby なら、

    str = "11A22B33C"
    reg = /\d+(\w)/

    str.scan(reg).to_a
    #=> [["A"], ["B"], ["C"]]
    564 : Name_Not - 2018/07/26(木) 20:45:08.53 ID:???.net (+24,+29,-6)
    >>563
    数字消えとるやんw まあ残せとか書いてないけどさ
    565 : 560 - 2018/07/26(木) 20:51:23.28 ID:???.net (-20,-30,-104)
    うーん、でも普通(?)にwhile使えば正規表現処理は1回ですむんだよな
    これもう少しうまくかけないかな

    str = "11ABC22BCD33CDEF"
    var reg = /(\d+(\w))/g;
    var ary = [];
    while (a = reg.exec(str)) {
     ary.push(a);
    }
    console.log(ary);
    566 : Name_Not - 2018/07/26(木) 21:09:10.20 ID:???.net (+26,+29,+0)
    >>565
    それが基本
    >>560も無駄が多い
    567 : Name_Not - 2018/07/26(木) 21:13:22.78 ID:???.net (+26,+29,-22)
    え?>>560の無駄って?
    言えないなら黙ってろよw
    568 : Name_Not - 2018/07/26(木) 21:22:47.40 ID:???.net (+32,+29,-1)
    >>566
    IDちゃんと見ろよ。
    >>565>>560は同一人物だ
    570 : Name_Not - 2018/07/26(木) 21:29:46.43 ID:???.net (+31,+29,-23)
    >>568
    同一人物だからいってる
    正規表現処理の回数を気にしてるぐらいだし、伝わると思うが
    571 : 560 - 2018/07/26(木) 21:35:53.24 ID:???.net (-22,-30,-180)
    RegExp.exec()がコールバック関数を受け取れば良いのかなー
    第二引数に関数が渡されていればmapのような挙動をするとかいう仕様なら
    互換性保ちながら拡張できそうだと思った

    str = "11ABC22BCD33CDEF"
    var reg = /(\d+(\w))/g;
    var ary = reg.exec(str, a => a)
    console.log(ary);


    >>570
    正規表現の処理的には無駄が多いってわかってるから>>565を書いたんだけど?
    そんな俺が言ったことを復唱するようなレスされてもなーw
    >>560の本質は、無駄かどうかじゃなくて、分かりやすくかけよって話だから
    572 : 559 - 2018/07/26(木) 21:47:25.05 ID:???.net (+26,+29,-21)
    >>571
    知らんがな
    そう思うなら、>>560で推奨なんて書くなよ
    >559に絡めて、代弁者にでもなったつもりか
    573 : Name_Not - 2018/07/26(木) 22:00:20.09 ID:???.net (-26,-30,+0)
    >>559
    > なぜ2回、matchするんだ?
    matchは二回してないぞw

    > ary = [...Array(str.match(reg).length)].map(_=>reg.exec(str))

    このクソ分かりづらいコードが、クソ分かりづらいことを
    証明するために説明してあげる。こんな説明が必要だからクソってことね
    ボコボコにするから>>558は泣くなよ?w

    まず [...Array(str.match(reg).length)] と map(_=>reg.exec(str)) に分ける
    前半の部分 の [...Array(str.match(reg).length)] は実は str.match(reg) でよい

    Array(・・・.length) は、「正規表現でマッチした配列」のlengthだけを使い
    「正規表現でマッチした配列」と同じサイズの「空の配列」を作るという意味
    普通はこんなことせずに、空の配列に変換せずにそのまま正規表現でマッチした配列を使えばよい

    そして、[...空の配列] は 空の配列をカンマ区切りの引数にして配列に戻している
    つまり[ary[0], ary[1], ary[2],・・・] と同じ。配列を展開して配列に戻す無意味な処理ってこと
    知ったばかりの [...Array]という技を使いたがってるだけというのはこういうこと

    はい、前半部分で2つ意味不明な処理が入ってましたw
    574 : Name_Not - 2018/07/26(木) 22:00:54.30 ID:???.net (-27,-30,-261)
    結局前半部分は、なんのために存在するかと言うと、後半部分を正規表現でマッチした数だけ繰り返すため
    match において reg = /\d+(\w)/g のキャプチャ部分は意味を持たないようだ。
    reg = /\d+\w/g と一緒。ついでに後半部分の exec では今度は/gが意味を持たないようだ
    つまり前半部分は、 /\d+\w/g という意味で使い、 後半部分は /\d+(\w)/ という意味で使っている
    このような、無視されることで書いたものとは違う解釈がされることを前提にしている。これも分かりづらい点の一つ

    で、後半部分は、結局 reg.exec(str) を配列でマッチした数だけ繰り返すという意味でしか無い
    だから _ は不要。regオブジェクトは状態を持っていて、

    reg.exec(str) 1回目・・・["11A", "A"]
    reg.exec(str) 2回目・・・["22B", "B"]
    reg.exec(str) 3回目・・・["33C", "C"]

    というふうに異なった値を返す。
    このよう挙動はregオブジェクトのexecメソッドは起きる。
    先のmatchメソッドは、strのメソッドであることに注意
    575 : Name_Not - 2018/07/26(木) 22:04:36.72 ID:???.net (+27,+29,-34)
    >>572
    関数型風のコードの書き方としては>>560 推奨で問題ない
    >>565は手続き型風のコード。だからコードが長くなってしまっている。
    根本的な解決方法は>571なのだろう
    576 : Name_Not - 2018/07/26(木) 22:23:22.04 ID:???.net (+27,+29,-41)
    「手続き型だからコードが長くなる」
    待遇を取って、
    「コードが短ければ手続き型ではない(≒関数型である)」
    これはそうとは限らない(アセンブラなど)、つまり偽だから命題は否定された。
    578 : Name_Not - 2018/07/26(木) 22:33:02.73 ID:???.net (-17,-15,-12)
    もともと関数型言語じゃないからな。
    最近のトレンドが入ってきてJavaScriptでも
    mapとかreduceとか使えるようになったけど、
    それすらも昔は無かった関数
    580 : Name_Not - 2018/07/26(木) 22:37:33.92 ID:???.net (+24,+26,-36)
    関数型言語じゃないけど、長い間メインストリーム言語の中で唯一関数型言語である条件のひとつ、関数が第一級オブジェクトである、を満たしている言語だった(過去形)
    581 : Name_Not - 2018/07/26(木) 22:37:38.07 ID:???.net (-27,-30,-13)
    >>560に書いてあるやん

    > ary = str.match(reg1).map(i=>reg2.exec(i));
    582 : Name_Not - 2018/07/26(木) 22:39:57.35 ID:???.net (+30,+29,-49)
    >>581
    そっちはそっちで正規表現オブジェクト2つ使ってて無駄というか
    直球回答じゃないそもそも論的なやつじゃん
    584 : Name_Not - 2018/07/26(木) 22:51:38.19 ID:???.net (+37,+29,-52)
    >>582
    だから論点は無駄かどうかじゃなくてわかりやすいかどうかだって
    メソッドによって違うように解釈されるような使い方したらいかんよ
    知らない人が見たらmatchでキャプチャされた文字部分を繰り返すとか読めてしまうだろ
    587 : Name_Not - 2018/07/26(木) 23:36:40.38 ID:???.net (+23,+25,-33)
    要素、要素のインデックス、回してる配列の順なのに要素の名前にiを使うというセンスの無さが光る。
    jQueryのと混乱してるのだろうか?
    588 : Name_Not - 2018/07/27(金) 00:37:13.02 ID:???.net (-3,+10,-11)
    >>585
    イテレーター
    589 : Name_Not - 2018/07/27(金) 01:14:44.84 ID:a94F3qFI.net (+22,+29,-72)
    コンストラクタに入れ子にしたメソッドを示すにはどのようにすれば良いですか?

    どうやらthis.はコンストラクタを示してしまい、メソッド自身を示せない様です
    593 : Name_Not - 2018/07/27(金) 02:30:38.31 ID:???.net (-26,-29,-7)
    http://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/String/replace

    string のreplace には、コールバック関数を渡せる。
    match には渡せないけど
    597 : Name_Not - 2018/07/27(金) 07:18:17.87 ID:???.net (-25,-23,-3)
    また読み込むJavaScriptファイルが増えるのか
    598 : Name_Not - 2018/07/27(金) 09:19:26.93 ID:???.net (+15,+27,+0)
    やったね
    ←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / JavaScript スレッド一覧へ
    スレッド評価: スレッド評価について
    みんなの評価 :
    タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。

    類似してるかもしれないスレッド


    トップメニューへ / →のくす牧場書庫について