特定の状況では、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
と偽の価値、これは非常に優れたオプションです。