配列から未定義の値を削除する 質問する

配列から未定義の値を削除する 質問する

特定の状況では、undefined一般的には偽の配列構造内の値。たとえば、データベースやHTML構造などの未知のソースからデータを読み込んで入力する場合などです。

var data = [42, 21, undefined, 50, 40, undefined, 9]

このような配列をループして要素を操作するときに問題が発生する可能性があるため、undefined(偽の値)を削除するためのベストプラクティスは何ですか?

ベストアンサー1

ここでの使用はArray.prototype.filter明らかでしょう。したがって、未定義の値だけを削除するには、次のように呼び出すことができます。

var data = [42, 21, undefined, 50, 40, undefined, 9];

data = data.filter(function( element ) {
   return element !== undefined;
});

すべての偽値 (0 や null など) を除外したい場合は、return !!element;代わりに を使用できます。

Booleanしかし、コンストラクター関数を渡すだけで、もう少しエレガントに行うことができます。Numberコンストラクター関数は次のようになります.filter

data = data.filter( Number );

この場合、一般的には偽の価値は、

data = data.filter( Boolean );

コンストラクタBoolean()true真実の価値観false偽の価値、これは非常に優れたオプションです。

おすすめ記事