Check if nested key exists even if undefined
本问题已经有最佳答案,请猛点这里访问。
试图找出编写函数
假定这个对象
1 2 3 4 5 6 7 8 9 | var obj = { a: { b: 1, c: { d: 2, e: undefined } } } |
在这个对象中,键
所以
1 2 | keyExists(obj, 'a.c.e') === true keyExists(obj, 'a.c.f') === false |
使用lodash/下划线可以
**更新**
Lodash
你可以尝试跟踪
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | var obj = {a: {b: 1,c: {d: 2,e: undefined}}}; function keyExists(o, key) { if(key.includes(".")) { let [k, ...rest] = key.split("."); return keyExists(o[k], rest.join(".")); } else if(o) { return o.hasOwnProperty(key); } return false; } console.log(keyExists(obj, 'a.c.e') === true) console.log(keyExists(obj, 'a.c.f') === false) |
注:如果