ホームページ > ウェブフロントエンド > jsチュートリアル > JavaScript オブジェクトから Null または未定義の属性を削除するにはどうすればよいですか?

JavaScript オブジェクトから Null または未定義の属性を削除するにはどうすればよいですか?

Patricia Arquette
リリース: 2024-11-28 04:31:13
オリジナル
343 人が閲覧しました

How Can I Remove Null or Undefined Attributes from a JavaScript Object?

JavaScript でオブジェクトから空白の属性を削除する

JavaScript では、オブジェクトが未定義または null のプロパティを持つことがあり、コードが煩雑になる可能性があります。そして作業がさらに難しくなります。これを解決するには、さまざまな手法を使用してオブジェクトからこれらの空白の属性を削除します。

ES10/ES2019

これらのメソッドでは、Object.fromEntries() の導入を使用します。メソッド:

  • ワンライナー: let o = Object.fromEntries(Object.entries(obj).filter(([_, v]) => v != null));
  • 上記と同じですが、関数として使用します: function RemoveEmpty(obj) { return Object.fromEntries(Object.entries(obj).filter(([_, v]) => v != null)); }
  • ネストされたオブジェクトから項目を削除する再帰バージョン: function RemoveEmpty(obj) { return Object.fromEntries( Object.entries(obj) .filter(([_, v]) => v != null) .map(([k, v]) => [k, v === Object(v) ?removeEmpty(v) : v])); }

ES6/ES2015

  • 変更可能なワンライナー: Object.keys(obj).forEach((k) => obj [k] == null && 削除obj[k]);
  • 非変異バージョン: let o = Object.keys(obj) .filter((k) => obj[k] != null) .reduce((a, k) => ({ ...a, [k]: obj[k] }), {});
  • 上記と同様に、次のように記述されます。関数: function removeEmpty(obj) { return Object.entries(obj) .filter(([_, v]) => v != null) .reduce((acc, [k, v]) => ( { ...acc, [k]: v }), {}); }
  • ネストされたオブジェクトを処理するための再帰関数: function RemoveEmpty(obj) { return Object.entries(obj) .filter(([_, v]) => v != null) .reduce( ( acc, [k, v]) => ({ ...acc, [k]: v === Object(v) ? RemoveEmpty(v) : v })、{} ); }

ES5/ES2009

  • 機能的な非再帰バージョン: function RemoveEmpty(obj) { return Object.keys(obj) .filter (関数 (k) { return obj[k] != null; }) .reduce(function (acc, k) { acc[k] = obj[k]; return acc; }, {}); }
  • 再帰関数バージョン: function RemoveEmpty(obj) { return Object.keys(obj) .filter(function (k) { return obj[k] != null; }) .reduce(function (acc) , k) { acc[k] = typeof obj[k] === "オブジェクト" (obj[k]) ? : obj[k] 戻り値 }, {}); }

以上がJavaScript オブジェクトから Null または未定義の属性を削除するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート