複雑な文字列パターンをマッチさせる必要がある場合はIF分ではなく正規表現を使うべきだとChat GPTが言ってた

従来 考えてみたと書いたが、そもそも従来の書き方だとどうしても汚く見えてしまうので、これを機に綺麗にしようという次第である。 で、その従来の書き方といえば、 /* 文豪がランダムで抽出される */ const targetArray = ['三島由紀夫','太宰治','夏目漱石','芥川龍之介','宮沢賢治'] const randamIndex = Math.floor( Math.random() * targetArray.length ); const target = targetArray[randamIndex] /* 文豪が芥川か太宰ならture */ const matchCondition = (target) => { return target === '芥川龍之介' || target === '太宰治' } console.log(target, matchCondition(target)) こんな感じ。 条件が少なければ別にいいけど、条件が多い場合はtarget === 'hoge'を沢山繋いでいく必要がある。 これをもっと綺麗にしたい。 正規表現を使いましょう const condition = /\芥川龍之介|太宰治\b/ console.log(target, condition.test(target)) これで、わざわざtarget === 'hoge'でつなぐことなく/\芥川龍之介|太宰治\b/に文豪名を増やしていくだけで済むようになった。 Chat GPTは? 考えたコードが本当に正しいか、シンプルか、美しいかの判定ができないので、流行のChat GPTにも考えてもらった。 三島由紀夫、太宰治、夏目漱石、芥川龍之介、宮沢賢治の中の1つがランダムに抽出されるデータがあり、抽出されたデータが芥川龍之介か太宰治ならtrueを返すコードをJavascriptで書いて こんにちは!下記がそのコードになります: const writers = ['三島由紀夫', '太宰治', '夏目漱石', '芥川龍之介', '宮沢賢治']; const selectedWriter = writers[Math....

投稿日 · 2023-03-19 · 更新日 · 2024-06-07 · 1 分 · nove-b