ホームページ > ウェブフロントエンド > jsチュートリアル > JavaScript オブジェクトが空かどうかを効果的に判断するにはどうすればよいですか?

JavaScript オブジェクトが空かどうかを効果的に判断するにはどうすればよいですか?

DDD
リリース: 2024-12-24 14:00:19
オリジナル
498 人が閲覧しました

How Can I Effectively Determine if a JavaScript Object is Empty?

JavaScript オブジェクトの空の確認

JavaScript オブジェクトが空かどうかを確認するには、さまざまな方法と考慮事項を使用できます。 1 つのアプローチには、for...in ループを Object.hasOwn と組み合わせて利用することが含まれます (ECMA 2022)。このループは、オブジェクト自身のプロパティを反復処理し、存在する場合は false を返します。

function isEmpty(obj) {
  for (const prop in obj) {
    if (Object.hasOwn(obj, prop)) {
      return false;
    }
  }

  return true;
}
ログイン後にコピー

別のメソッドは、tussen の空のオブジェクトと、独自のプロパティを欠いている他のオブジェクトを区別します。これは、型チェックによって実現できます。

function isEmptyObject(value) {
  if (value == null) {
    return false;
  }

  if (typeof value !== 'object') {
    return false;
  }

  const proto = Object.getPrototypeOf(value);

  if (proto !== null && proto !== Object.prototype) {
    return false;
  }

  return isEmpty(value);
}
ログイン後にコピー

Object.prototype と比較すると、クロスレルム オブジェクトが見落とされる可能性があることに注意することが重要です。さらに、Object.keys(obj).length は配列の作成が必要で非効率であるため推奨されません。

古い JavaScript エンジンとの互換性を確保するために、Object.hasOwn を Object.prototype.hasOwnProperty.call に置き換えることができます。 :

function isEmpty(obj) {
  for (var prop in obj) {
    if (Object.prototype.hasOwnProperty.call(obj, prop)) {
      return false;
    }
  }

  return true;
}
ログイン後にコピー

さまざまなライブラリが、空かどうかをチェックするために特別に設計された関数を提供していますオブジェクト:

  • jQuery: jQuery.isEmptyObject({}) // true
  • Lodash: _.isEmpty({}) // true
  • アンダースコア: _ .isEmpty({}) // true
  • フック: Hoek.deepEqual({}, {}) // true
  • ExtJS: Ext.Object.isEmpty({}) // true
  • AngularJS (バージョン 1): angular.equals({ }, {}) // true
  • ラムダ: R.isEmpty({}) // true

以上がJavaScript オブジェクトが空かどうかを効果的に判断するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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