Panda Noir

JavaScript の限界を究めるブログでした。最近はいろんな分野を幅広めに書いてます。

Jestいいぞ

今更コードのカバレッジを気にし始めたクロパンダです(プログラミング歴7年目())。今までは結構ざっくりとテストを書いてきていました。というのも、コードカバレッジという概念がどうも七面倒でやる気が起きなかったのです。

しかし、JavaScriptテストツール「Jest」を試してみたところ、かなり使いやすかったので紹介したいと思います(今更)

続きを読む

Vimで選択した文字列を利用して検索する

「選択範囲内で検索する」ではなく、「選択した文字列で検索する」というTipです。

  1. ヤンクする
  2. /を入力する(検索できる状態にする)
  3. <C-r>を押す
  4. ヤンクしたレジスタ名を入力する(ただのyでヤンクした場合は、無名レジスタなので"を押せばOK)

まあこれだけのTipです。

まとめると

ヤンク / <C-r> "となります。カンタンですね。

応用例

よく考えると「<C-r> レジスタ名と入力すると、そのレジスタの内容が貼り付けられる」というだけのことなので、他の場所でも応用可能です。

ついでに置換する

まず上の手順で検索してください。次に:%s//と入力してください。そのあとに置換したい文字を入力すればOKです。

実はVimは置換対象を省略すると、直前に検索していた文字列が対象になります。そのため、検索していた文字を置換できます。

enumをそこそこ綺麗に書く

今日で本ブログは6周年となりました。特に何かするわけではありませんが。

本題に入ります。enumをJavaScriptでそこそこ綺麗に書くテクニックの紹介です。

const [SUN, MON, TUE, WED, THU, FRI, SAT] = Array(7).keys();

これだけのTipです。Array(7)Array(20)くらいにしておくと、ほとんどのケースで対応可能かと思います。

一応解説

さすがに短すぎるのでコードの解説をします。まず、Array(7).keys()[0, 1, 2, 3, 4, 5, 6]という配列を用意します。あとはこれをES2015の分割代入でSUN、MON、…のそれぞれに代入するだけです。

使い方

const days = [SUN, SUN, MON, FRI];
days.filter(day => day === SUN).length; // 2