配列からfalsyな値を除外したいならArray.filter(Boolean)を使おう
JavaScript
公開日時:2024/07/13
Array.filterメソッドは配列をイテレートして各要素に指定したコールバック関数を適用してtrueのもののみで新しい配列を作成してくれるメソッド。
対してBooleanはコンストラクタ関数と呼ばれるものでGlobalにあらかじめ定義されている関数であり、値をboolean型に変換してくれる。
これらを組み合わせることで配列の各要素をbooleanで判定し、falsyな値を除外した新しい配列を作成することができる。
サンプル
const array = [0, 1, 'test', '', true, false, NaN, null, undefined, {}];
console.log(array.filter(Boolean)) // [1,'test',true,{}]
0
,''
,false
,NaN
,null
,undefined
が除外されていることが確認できる。
注意点としては {} などは trueとして扱われるので場合によってはfilterの条件をより厳密にする必要がある。
ちなみに以下でも同じ意味になる。
array.filter(item=>Boolean(item))