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

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

Susan Sarandon
Susan Sarandonオリジナル
2024-12-13 13:03:25746ブラウズ

How to Effectively Check for Empty JavaScript Objects?

空の JavaScript オブジェクトのチェック

JavaScript を使用する場合、アプリケーションが { } で示される空のオブジェクトを返すシナリオに遭遇することがあります。 。オブジェクトが空であるかどうかを判断することは、データを適切に処理するために不可欠です。この記事では、空の JavaScript オブジェクトをテストするためのいくつかの方法について説明します。

方法 1: for...in ループおよび Object.hasOwn (ECMA 2022)

このメソッドは、オブジェクトのプロパティを反復するための for...in ループ。独自のプロパティが存在する場合は、オブジェクトが空ではないことを示し、false を返します。それ以外の場合は true を返します。

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

  return true;
}

方法 2: Object.keys と length

このアプローチは単純ですが、すべての配列を作成するため効率が低くなります。プロパティ名。複雑さは O(N) です。

function isEmpty(obj) {
  return Object.keys(obj).length === 0;
}

方法 3: 型{ } のようなオブジェクトをチェックします

空のオブジェクト ({ }) と独自のプロパティを持たない他のオブジェクト (日付など) を区別するには、型チェックが必要です:

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

  if (typeof value !== 'object') {
    return false; // boolean, number, string, function, etc.
  }

  const proto = Object.getPrototypeOf(value);

  if (proto !== null && proto !== Object.prototype) {
    return false; // `Object.create(null)` or other objects with custom prototypes
  }

  return isEmpty(value); // check for any own properties
}

方法 4: サードパーティのライブラリを使用する

多くの人気のあるJavaScript ライブラリは、次のような空のオブジェクトをチェックする関数を提供します。

  • jQuery: jQuery.isEmptyObject
  • lodash: _.isEmpty
  • Underscore: _.isEmpty
  • フック: Hoek.deepEqual
  • ExtJS: Ext.Object.isEmpty
  • AngularJS (バージョン 1): angular.equals

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

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。