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

JavaScript オブジェクトの長さを効率的に判断するにはどうすればよいですか?

DDD
リリース: 2024-12-16 16:12:16
オリジナル
752 人が閲覧しました

How Do I Efficiently Determine the Length of a JavaScript Object?

JavaScript オブジェクトの長さの取得

JavaScript では、オブジェクトは動的かつ変更可能です。つまり、オブジェクトの内容はプログラムの実行中に変更される可能性があります。オブジェクトの長さ (オブジェクトに含まれるプロパティの数を表す) を決定することは、多くの場合、プログラミング ロジックやデータ操作に必要です。

従来のアプローチ: オブジェクトのサイズとプロパティの列挙

従来、JavaScript 開発者には、長さを取得するための主なオプションが 2 つありました。 object:

  1. Object Size: Object.prototype.toString() を使用してオブジェクトの文字列表現を取得し、それをカンマで分割して結果の配列の長さをカウントします。このアプローチはエラーが発生しやすく、ネストされたオブジェクトや複雑なオブジェクトでは信頼できません。
  2. プロパティ列挙: ループを使用してオブジェクトのプロパティを反復処理し、カウンターをインクリメントして長さを追跡します。ただし、これには手動での反復が必要であり、プロトタイプの継承やオブジェクトへの構文上の糖衣追加に対して堅牢ではありませんでした。

最新のベスト プラクティス: Object.keys()

ECMAScript 5 (ES5) の導入とその広範な採用により、オブジェクトの長さを取得するための最も信頼性の高い方法は次のとおりです。 Object.keys()。この組み込みメソッドは、オブジェクト独自の列挙可能なプロパティ名の配列を返し、その長さを直接取得できます。

const myObject = new Object();
myObject["firstname"] = "Gareth";
myObject["lastname"] = "Simpson";
myObject["age"] = 21;

const objectLength = Object.keys(myObject).length;
// objectLength will be 3
ログイン後にコピー

シンボリック プロパティの説明

ただしObject.keys() は、オブジェクトに追加される一意の識別子であるシンボリック プロパティを考慮しないことに注意することが重要です。 Symbol() 関数を使用します。シンボリック プロパティを処理するには、シンボリック プロパティ名の配列を返す Object.getOwnPropertySymbols() を使用し、その長さを Object.keys() の結果に追加します。

const propOwn = Object.getOwnPropertyNames(person);
const propSymb = Object.getOwnPropertySymbols(person);

const objectLength = propOwn.length + propSymb.length;
ログイン後にコピー

結論

Object.keys() の使用は、キーの長さを決定するための最も信頼性が高く、汎用性の高い方法です。 JavaScript オブジェクト。すべてのオブジェクトのプロパティの正確な数を取得するために、必要に応じてシンボリック プロパティを考慮することが重要です。このアプローチを活用することで、開発者はアプリケーション内の JavaScript オブジェクトを効率的に管理および操作できます。

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

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