かもメモ

自分の落ちた落とし穴に何度も落ちる人のメモ帳

JavaScript 配列から null とか undefined を取り除く

create-react-app で作ったプロジェクトを npm run eject して webpack の秘伝のタレを眺めていて次ような記述を発見しました。

const loaders = [
  // 略
].filter(Boolean);

0 とか null とか undefined とか false になる値を配列から削除してる

array.filter(callback) なので、先の例は次の処理と同等。

const loaders = [
  // 略
].filter((val) => Boolean(val));

filterは true を返す要素を残すので Boolean で Bool値変換して false になる要素を削除しているということでした。

e.g.
const list = [
  1,
  0, // want to remove
  -0, // want to remove
  -1,
  true,
  false, // want to remove
  null, // want to remove
  undefined, // want to remove
  NaN, // want to remove
  "a",
  "", // want to remove
];

list.filter((val) => Boolean(val));
// => [ 1, -1, true, 'a' ]
list.filter(Boolean);
// => [ 1, -1, true, 'a' ]

 
流石すごい人達が作った秘伝のタレ…学びがある。味ついてて美味しいです。


[参考]

ゆで卵…電子レンジで作れるんですね… (爆発すると思ってた