Menu
Coddy logo textTech

キーの存在確認

CoddyのJavaScriptジャーニー「論理とフロー」セクションの一部 — レッスン 16/65。

JSONオブジェクト内の特定のキーを確認するには、in演算子またはhasOwnProperty()のいずれかを使用します。例えば:

const product = { "name": "Laptop", "price": 900 };
if ("price" in product) {
  console.log("Key exists!");
}

if (product.hasOwnProperty("price")) {
  console.log("Key exists!");
}

これは、処理を行う前に特定のデータが存在するかどうかを確認する際に便利です。

obj.hasOwnProperty("key") は、objkey を自身のプロパティとして持っていない場合に false を返します。しかし、obj.key === undefined であることは、必ずしも hasOwnProperty("key")false を返すことを意味するわけではありませんobj.keyundefined になるケースには、以下の2つがあります:

  • プロパティが全く存在しない場合 → hasOwnProperty("key")false を返します。
  • プロパティは存在するが、値が undefined である場合 → hasOwnProperty("key")true を返します。

例えば:

const obj1 = {};  
console.log(obj1.key); // undefined
console.log(obj1.hasOwnProperty("key"));
// false

const obj2 = { key: undefined };
console.log(obj2.key); // undefined
console.log(obj2.hasOwnProperty("key"));
// true
challenge icon

チャレンジ

簡単

toggleBookStatusという名前の関数を作成してください。この関数は引数としてbookオブジェクトを受け取ります。この関数は以下の処理を行う必要があります:

  1. もしbookがisReadプロパティを持っており、その値がtrueである場合は、それをfalseに変更します。
  2. もしbookがisReadプロパティを持っており、その値がfalseである場合は、それをtrueに変更します。
  3. もしbookがisReadプロパティを持っていない場合は、そのプロパティを追加してtrueに設定します。
  4. 変更されたbookオブジェクトを返します。

チートシート

JSONオブジェクト内に特定のキーが存在するかどうかを確認するには、in演算子またはhasOwnProperty()を使用します:

const product = { "name": "Laptop", "price": 900 };

// 'in'演算子を使用する
if ("price" in product) {
  console.log("Key exists!");
}

// hasOwnProperty()を使用する
if (product.hasOwnProperty("price")) {
  console.log("Key exists!");
}

hasOwnProperty()は、プロパティが存在する場合(値がundefinedであっても)はtrueを返し、プロパティが存在しない場合はfalseを返します:

const obj1 = {};  
console.log(obj1.hasOwnProperty("key")); // false

const obj2 = { key: undefined };
console.log(obj2.hasOwnProperty("key")); // true

自分で試してみよう

function toggleBookStatus(book) {
    // ここにコードを記述してください
}
// 関数の外には何も記述しないでください
quiz icon腕試し

このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。

論理とフローのすべてのレッスン