ネストしたオブジェクトにアクセスするときに、存在チェックが出来る関数を作りました。
deepメソッド
const deep = (obj, path) => {
path = path.split(/\.|\[|\]/).filter(v => v)
for (const k in path) {
if (!obj) return false
else if (obj[path[k]]) obj = obj[path[k]]
else return false
}
return true
}
使い方
testオブジェクトに、test2プロパティが存在している
その中にtest3プロパティが存在していて、かつ中の値も存在しているか確認
const test = {
test2: {
test3: true
}
}
console.log(deep(test, 'test2.test3'))
出力結果
true
存在している場合はtrue
、存在していない場合はfalse
が返ってくる