私的良スレ書庫
不明な単語は2ch用語を / 要望・削除依頼は掲示板へ。不適切な画像報告もこちらへどうぞ。 / 管理情報はtwitterでログインするとレス評価できます。 登録ユーザには一部の画像が表示されますので、問題のある画像や記述を含むレスに「禁」ボタンを押してください。
元スレ+ JavaScript の質問用スレッド vol.134 +
JavaScript スレッド一覧へ / JavaScript とは? / 携帯版 / dat(gz)で取得 / トップメニューみんなの評価 :
レスフィルター : (試験中)
ニューラルネットってWebと相性が良いと思う
データの量にかかわらず指定したサイズと計算負荷のモデルを作ることができるし
それを蒸留してモバイル向けにサイズと計算負荷が1/5のものを用意するとかも簡単にできる
データの量にかかわらず指定したサイズと計算負荷のモデルを作ることができるし
それを蒸留してモバイル向けにサイズと計算負荷が1/5のものを用意するとかも簡単にできる
>>558
なぜ2回、matchするんだ?
なぜ2回、matchするんだ?
言う前に先越されたか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));
// 推奨。わざわざ変数に入れなくてもよいが
>>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));
// 推奨。わざわざ変数に入れなくてもよいが
> // 推奨。わざわざ変数に入れなくてもよいが
変数に入れなくて良いのは正規表現ね
ary = str.match(/\d+\w/g).map(i=>/\d+(\w)/.exec(i));
ということ
変数に入れなくて良いのは正規表現ね
ary = str.match(/\d+\w/g).map(i=>/\d+(\w)/.exec(i));
ということ
Ruby なら、
str = "11A22B33C"
reg = /\d+(\w)/
str.scan(reg).to_a
#=> [["A"], ["B"], ["C"]]
str = "11A22B33C"
reg = /\d+(\w)/
str.scan(reg).to_a
#=> [["A"], ["B"], ["C"]]
>>563
数字消えとるやんw まあ残せとか書いてないけどさ
数字消えとるやんw まあ残せとか書いてないけどさ
うーん、でも普通(?)にwhile使えば正規表現処理は1回ですむんだよな
これもう少しうまくかけないかな
str = "11ABC22BCD33CDEF"
var reg = /(\d+(\w))/g;
var ary = [];
while (a = reg.exec(str)) {
ary.push(a);
}
console.log(ary);
これもう少しうまくかけないかな
str = "11ABC22BCD33CDEF"
var reg = /(\d+(\w))/g;
var ary = [];
while (a = reg.exec(str)) {
ary.push(a);
}
console.log(ary);
え?>>560の無駄って?
言えないなら黙ってろよw
言えないなら黙ってろよw
RegExp.exec()がコールバック関数を受け取れば良いのかなー
第二引数に関数が渡されていればmapのような挙動をするとかいう仕様なら
互換性保ちながら拡張できそうだと思った
str = "11ABC22BCD33CDEF"
var reg = /(\d+(\w))/g;
var ary = reg.exec(str, a => a)
console.log(ary);
>>570
正規表現の処理的には無駄が多いってわかってるから>>565を書いたんだけど?
そんな俺が言ったことを復唱するようなレスされてもなーw
>>560の本質は、無駄かどうかじゃなくて、分かりやすくかけよって話だから
第二引数に関数が渡されていればmapのような挙動をするとかいう仕様なら
互換性保ちながら拡張できそうだと思った
str = "11ABC22BCD33CDEF"
var reg = /(\d+(\w))/g;
var ary = reg.exec(str, a => a)
console.log(ary);
>>570
正規表現の処理的には無駄が多いってわかってるから>>565を書いたんだけど?
そんな俺が言ったことを復唱するようなレスされてもなーw
>>560の本質は、無駄かどうかじゃなくて、分かりやすくかけよって話だから
>>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
> なぜ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
結局前半部分は、なんのために存在するかと言うと、後半部分を正規表現でマッチした数だけ繰り返すため
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のメソッドであることに注意
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のメソッドであることに注意
「手続き型だからコードが長くなる」
待遇を取って、
「コードが短ければ手続き型ではない(≒関数型である)」
これはそうとは限らない(アセンブラなど)、つまり偽だから命題は否定された。
待遇を取って、
「コードが短ければ手続き型ではない(≒関数型である)」
これはそうとは限らない(アセンブラなど)、つまり偽だから命題は否定された。
もともと関数型言語じゃないからな。
最近のトレンドが入ってきてJavaScriptでも
mapとかreduceとか使えるようになったけど、
それすらも昔は無かった関数
最近のトレンドが入ってきてJavaScriptでも
mapとかreduceとか使えるようになったけど、
それすらも昔は無かった関数
関数型言語じゃないけど、長い間メインストリーム言語の中で唯一関数型言語である条件のひとつ、関数が第一級オブジェクトである、を満たしている言語だった(過去形)
>>582
だから論点は無駄かどうかじゃなくてわかりやすいかどうかだって
メソッドによって違うように解釈されるような使い方したらいかんよ
知らない人が見たらmatchでキャプチャされた文字部分を繰り返すとか読めてしまうだろ
だから論点は無駄かどうかじゃなくてわかりやすいかどうかだって
メソッドによって違うように解釈されるような使い方したらいかんよ
知らない人が見たらmatchでキャプチャされた文字部分を繰り返すとか読めてしまうだろ
要素、要素のインデックス、回してる配列の順なのに要素の名前にiを使うというセンスの無さが光る。
jQueryのと混乱してるのだろうか?
jQueryのと混乱してるのだろうか?
>>585
イテレーター
イテレーター
コンストラクタに入れ子にしたメソッドを示すにはどのようにすれば良いですか?
どうやらthis.はコンストラクタを示してしまい、メソッド自身を示せない様です
どうやらthis.はコンストラクタを示してしまい、メソッド自身を示せない様です
http://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/String/replace
string のreplace には、コールバック関数を渡せる。
match には渡せないけど
string のreplace には、コールバック関数を渡せる。
match には渡せないけど
前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / JavaScript スレッド一覧へ
みんなの評価 : 類似してるかもしれないスレッド
- + JavaScript の質問用スレッド vol.131 + (1000) - [97%] - 2017/1/25 8:01
- + JavaScript の質問用スレッド vol.137 + (1003) - [97%] - 2019/3/26 11:46
- + JavaScript の質問用スレッド vol.130 + (974) - [97%] - 2016/10/26 14:18
- + JavaScript の質問用スレッド vol.114 + (1001) - [97%] - 2014/5/3 10:45
- + JavaScript の質問用スレッド vol.130 + (1001) - [97%] - 2017/11/25 20:45
- + JavaScript の質問用スレッド vol.131 + (1004) - [97%] - 2018/3/7 13:30
- + JavaScript の質問用スレッド vol.132 + (1001) - [97%] - 2018/4/19 11:00
- + JavaScript の質問用スレッド vol.133 + (1001) - [97%] - 2018/6/8 10:45
- + JavaScript の質問用スレッド vol.136 + (1001) - [97%] - 2019/1/8 11:30
- + JavaScript の質問用スレッド vol.135 + (1002) - [97%] - 2018/11/23 10:30
- + JavaScript の質問用スレッド vol.138 + (1004) - [97%] - 2019/4/20 23:45
- + JavaScript の質問用スレッド vol.139 + (1001) - [97%] - 2019/5/27 15:15
- + JavaScript の質問用スレッド vol.104 + (1001) - [97%] - 2013/1/28 4:00
- + JavaScript の質問用スレッド vol.124 + (1001) - [97%] - 2015/7/16 1:30
- + JavaScript の質問用スレッド vol.144 + (288) - [97%] - 2020/5/17 20:00
- + JavaScript の質問用スレッド vol.113 + (1001) - [95%] - 2014/3/15 21:30
- + JavaScript の質問用スレッド vol.119 + (1002) - [95%] - 2014/10/3 15:30
トップメニューへ / →のくす牧場書庫について