オブジェクトにキーがあるかどうかを確認する

Beginner

This tutorial is from open-source community. Access the source code

はじめに

この実験では、JavaScript を使って JSON オブジェクト内に特定の値が存在するかどうかを確認する方法を検討します。オブジェクト内のキーを順次確認して、対象の値が存在するかどうかを判断するために、hasKey()関数を使用します。この実験を通じて、JavaScript における JSON オブジェクトの操作方法をより深く理解することができます。

JavaScript オブジェクトにキーがあるかどうかを確認する関数

JavaScript オブジェクト内に対象の値が存在するかどうかを確認するには、hasKey関数を使用します。

この関数には 2 つの引数が必要です。探索対象の JSON オブジェクトobjと、確認するキーの配列keysです。オブジェクトに指定されたキーがあるかどうかを確認する手順は以下の通りです。

  1. keys配列が空でないことを確認します。空の場合はfalseを返します。
  2. Array.prototype.every()メソッドを使用して、keys配列を反復処理し、objの内部の深さまで各キーを順次確認します。
  3. Object.prototype.hasOwnProperty()メソッドを使用して、objに現在のキーがないか、またはオブジェクトでないことを確認します。これらの条件のいずれかが true の場合、処理を中止してfalseを返します。
  4. それ以外の場合は、次の反復処理で使用するために、キーの値をobjに代入します。
  5. keys配列が正常に反復処理された場合は、trueを返します。

以下がhasKey関数のコードです。

const hasKey = (obj, keys) => {
  return (
    keys.length > 0 &&
    keys.every((key) => {
      if (typeof obj !== "object" || !obj.hasOwnProperty(key)) return false;
      obj = obj[key];
      return true;
    })
  );
};

hasKey関数の使用例をいくつか示します。

let obj = {
  a: 1,
  b: { c: 4 },
  "b.d": 5
};

hasKey(obj, ["a"]); // true
hasKey(obj, ["b"]); // true
hasKey(obj, ["b", "c"]); // true
hasKey(obj, ["b.d"]); // true
hasKey(obj, ["d"]); // false
hasKey(obj, ["c"]); // false
hasKey(obj, ["b", "f"]); // false

まとめ

おめでとうございます!オブジェクトにキーがあるかどうかを確認する実験を完了しました。技術力を向上させるために、LabEx でさらに多くの実験を行って練習してください。