ホームページ >ウェブフロントエンド >jsチュートリアル >JavaScript オブジェクト内のネストされたキーの存在を安全に確認するにはどうすればよいですか?

JavaScript オブジェクト内のネストされたキーの存在を安全に確認するにはどうすればよいですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-12-20 06:29:13444ブラウズ

How Can I Safely Check for the Existence of Nested Keys in JavaScript Objects?

ネストされた JavaScript オブジェクト キーの存在のテスト

ネストされた JavaScript オブジェクト内のプロパティの存在を検証することは、特に潜在的な問題に直面した場合に課題となります。 null または未定義の値。この問題に対処するには、リスクがありエラーが発生しやすいプロパティへの直接アクセスに依存するのではなく、段階的なアプローチを採用することを検討してください。

実行可能な解決策の 1 つは、複数のネストされたレベルの存在をテストするカスタマイズされた関数です。 checkNested という上品な名前のこの関数は、最初の引数としてターゲット オブジェクトを受け取り、その後に予期される一連のネストされたプロパティ名を受け取ります。各プロパティの存在を系統的にチェックし、すべて見つかった場合は true を返し、そうでない場合は false を返します。

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;
}

たとえば、次のオブジェクトが与えられたとします。

var test = {
  level1: {
    level2: {
      level3: 'level3',
    },
  },
};

期待される値で checkNested を呼び出します。レベルは予想される結果を返します:

checkNested(test, 'level1', 'level2', 'level3'); // true
checkNested(test, 'level1', 'level2', 'foo'); // false

ES6最適化

ES6 の機能を利用すると、この機能をさらに合理化し、簡潔で効率的な実装が可能になります。再帰と末尾呼び出しの最適化を組み合わせると、簡潔かつ強力なソリューションが作成されます。

function checkNested(obj, level, ...rest) {
  if (obj === undefined) return false;
  if (rest.length == 0 && obj.hasOwnProperty(level)) return true;
  return checkNested(obj[level], ...rest);
}

さらに、ネストされたプロパティの存在を単にテストするのではなく、ネストされたプロパティの値を取得することが目的の場合、より簡単なアプローチは次のとおりです。利用可能:

function getNested(obj, ...args) {
  return args.reduce((obj, level) => obj && obj[level], obj);
}

const test = {
  level1: {
    level2: {
      level3: 'level3',
    },
  },
};
console.log(getNested(test, 'level1', 'level2', 'level3')); // 'level3'
console.log(getNested(test, 'level1', 'level2', 'level3', 'length')); // 6
console.log(getNested(test, 'level1', 'level2', 'foo')); // undefined
console.log(getNested(test, 'a', 'b')); // undefined

これらのテクニックを活用することで、ネストされた JavaScript オブジェクトの複雑さを自信を持ってナビゲートでき、堅牢性と信頼性を確保できます。コードの。

以上がJavaScript オブジェクト内のネストされたキーの存在を安全に確認するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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