なりゆき
レビューしてるなかでプロパティチェック方法を考えてたら何個かパターンがあるのでまとめてみた
ざっくばらん
Object.keys + Array.prototype.indexOf
let user = {
id: 1,
name: 'hoge'
};
console.log(Object.keys(user).indexOf('name') !== -1) // true
console.log(Object.keys(user).indexOf('mailaddress') !== -1) // false
一度キーの配列にしてから、配列内に対象のキー名があるかを見る方法
二回メソッド呼ぶ必要があって冗長・・・
Object.prototype.hasOwnProperty
let user = {
id: 1,
name: 'hoge'
};
console.log(user.hasOwnProperty('name')) // true
console.log(user.hasOwnProperty('mailaddress')) // false
オブジェクトの対象のプロパティの有無を返します
この時継承されていないプロパティしか見ないので注意
in演算子
let user = {
id: 1,
name: 'hoge'
};
console.log('name' in user) // true
console.log('mailaddress' in user) // false
最近知った()
Object.prototype.hasOwnProperty
とだいたい同様で、オブジェクトの対象のプロパティの有無を返します
こちらは継承元までさかのぼってプロパティを見ます