[解決済み] 配列から未定義の値を削除する
2023-07-12 03:19:39
質問
ある状況下で、以下のようなことが起こるかもしれない。
undefined
または一般に
ファルシー
の値を使用することができます。例えば、データベースやHTML構造のような未知のソースからデータを読み取り、充填する場合です。たとえば
var data = [42, 21, undefined, 50, 40, undefined, 9]
このような配列をループして要素を操作するときに問題が発生する可能性があるため、ベストプラクティスとして、このような配列から
undefined
(偽の値)を削除する最良の方法は何でしょうか?
どのように解決するのですか?
使用方法
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
のいずれかに
ファルシー
の値であれば、これはとてもすてきなオプションです。
関連
-
[解決済み] 配列から特定の項目を削除するにはどうすればよいですか?
-
[解決済み] JavaScript で配列に値が含まれているかどうかを確認するにはどうすればよいですか?
-
[解決済み] 配列からArrayListを作成する
-
[解決済み] 配列に特定のインデックスで項目を挿入する方法 (JavaScript)
-
[解決済み】オブジェクトの配列を文字列のプロパティ値でソートする
-
[解決済み】オブジェクトからプロパティを削除する(JavaScript)
-
[解決済み] 配列からオブジェクトを生成する
-
[解決済み] URL/アドレスバーからJavascriptの関数を呼び出す
-
[解決済み] Reactメモを使うべきではない場合とは?
-
[解決済み] JavaScript で `throw` の後に `return` をする必要がありますか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] JSのDateからDay名
-
[解決済み] bootstrap のポップオーバーがすべての要素の上に表示されない
-
[解決済み] 文字列が空白であるかどうかをチェックする
-
[解決済み] JavaScriptを使用してHTML要素に属性を追加/更新するには?
-
[解決済み] jQueryの$という記号の意味は何ですか?
-
[解決済み] コールバック地獄とは何か、RXはそれをどのように、そしてなぜ解決するのか?
-
[解決済み] Chromeの拡張機能開発にWebStormを使用するにはどうすればよいですか?
-
[解決済み] AJAX Mailchimp サインアップフォームの統合
-
[解決済み] JSHintの'+'前の改行不良の説明
-
[解決済み] 変異を伴わないオブジェクトからの値の削除