どうも、ちょげ(@chogetarou)です。
Object(オブジェクト)にプロパティが存在するかどうか確認する方法を紹介します。
方法

Object(オブジェクト)のプロパティの存在チェックをする方法は、3つあります。
hasOwnProperty()
ひとつめは、hasOwnPropertyを使う方法です。
まず、ObjectからhasOwnProperty()を呼び出します。
そして、hasOwnProperty()の引数に、プロパティを指定します。
//obj=オブジェクト、prop=プロパティ
obj.hasOwnProperty(prop)
上記のhasOwnProperty()は、呼び出したObject(オブジェクト)にプロパティが存在すれば「true」、存在しなければ「false」を返します。
使用例
const nums = {
"one": 1,
"two": 2,
"three": 3,
"four": 4,
"five": 5,
}
console.log(nums.hasOwnProperty("two"))
console.log(nums.hasOwnProperty("eight"))
console.log(nums.hasOwnProperty("four"))
出力:
true
false
true
in
ふたつめは、「in」演算子を使う方法です。
具体的には、「in」演算子の左辺にプロパティ、右辺にObjectを指定します。
//obj=オブジェクト、prop=プロパティ
prop in obj
上記の「in」演算子は、右辺のObjectに左辺のプロパティが存在すれば「true」、存在しなければ「false」を返します。
使用例
const nums = {
"one": 1,
"two": 2,
"three": 3,
"four": 4,
"five": 5,
}
console.log("five" in nums)
console.log("eleven" in nums)
console.log("two" in nums)
出力:
true
false
true
undefined
みっつめは、undefinedを使う方法です。
まず、Objectの存在チェックするプロパティにアクセスします。
そして、アクセスした結果が「undefined」かどうか「===」もしくは「!==」で調べます。
//obj=オブジェクト、prop=プロパティ
obj.prop === undefined //存在しない場合にtrue, 存在する場合にfalse
obj.prop !== undefined //存在する場合にtrue, 存在しない場合にfalse
Objectのプロパティにアクセスした結果が「undefined」ならば、プロパティは存在しません。
Objectのプロパティにアクセスした結果が「undefined」でなければ、プロパティは存在します。
使用例
const nums = {
one: 1,
two: 2,
three: 3,
four: 4,
five: 5,
}
console.log(nums.four === undefined)
console.log(nums.ten === undefined)
console.log(nums.three === undefined)
出力:
false
true
false
まとめ
Object(オブジェクト)のプロパティの存在チェックをする方法は、次の3つです。
- hasOwnProperty()を使う方法
obj.hasOwnProperty(prop)
- 「in」演算子を使う方法
prop in obj
- undefined()を使う方法
obj.prop === undefined
obj.prop !== undefined
コメント