ネストされた JavaScript オブジェクト キーの存在のテスト
JavaScript で深くネストされたオブジェクトを扱う場合、キーの存在を確認することが不可欠です。エラーを回避します。提供された問題は、オブジェクトへの参照にネストされたプロパティがある可能性があるシナリオを説明しており、そのようなプロパティの存在を効果的に検証する方法について疑問が生じます。
現在採用されている 1 つのアプローチは、各レベルをチェックすることです。提供されたコード スニペットに示すように、オブジェクト階層を手動で作成します。ただし、これは、特に深くネストされたオブジェクトの場合、面倒でエラーが発生しやすくなる可能性があります。
より堅牢で洗練された解決策は、複数レベルのキーの存在を再帰的にチェックする関数を利用することです。 checkNested として知られる次の関数を使用して、これを実現できます。
function checkNested(obj /*, level1, level2, ... levelN*/) { var args = Array.prototype.slice.call(arguments, 1); for (var i = 0; i < args.length; i++) { if (!obj || !obj.hasOwnProperty(args[i])) { return false; } obj = obj[args[i]]; } return true; }
この関数は、最初の引数としてオブジェクトを受け取り、その後に、チェックする必要なネストされたレベルを表す可変数の引数を受け取ります。これらの引数を繰り返し処理して、各レベルの存在をテストし、不足しているものがあれば false を返します。それ以外の場合、すべてのレベルが存在する場合は true を返します。
たとえば、提供されたオブジェクト テストが与えられた場合、checkNested:
checkNested(test, 'level1', 'level2', 'level3'); // true checkNested(test, 'level1', 'level2', 'foo'); // false
を使用して level3 プロパティの存在を確認できます。このアプローチでは、次のことが可能になります。ネストされたオブジェクトのプロパティを効率的かつ信頼性の高いテストでテストし、プログラムがエラーを発生することなく安全にアクセスまたは利用できることを確認します。
以上がJavaScript オブジェクト内のネストされたキーの存在を効率的に確認するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。