var object = { 'a': [{ 'b': { 'c': 3 } }] } console.log(object.a[0].b.c.d)
上述代码会返回babel
var object = { 'a': [{ 'b': { 'c': 3 } }] } console.log(object&&object.a) console.log(object&&object.a&&object.a[0]) console.log(object&&object.a&&object.a[0]&&object.a[0].b) console.log(object&&object.a&&object.a[0]&&object.a[0].b&&object.a[0].b.c) console.log(object&&object.a&&object.a[0]&&object.a[0].b&&object.a[0].b.c&&object.a[0].b.c.d)
使用lodashpost
var object = { 'a': [{ 'b': { 'c': 3 } }] } console.log(_.get(object, 'a')) console.log(_.get(object, 'a[0]')) console.log(_.get(object, 'a[0].b')) console.log(_.get(object, 'a[0].b.c')) console.log(_.get(object, 'a[0].b.c.d'))
var getProps = (p, o) => p.reduce((xs, x) => (xs && xs[x]) ? xs[x] : null, o) var object = { 'a': [{ 'b': { 'c': 3 } }] } console.log(getProps(['a'], object)) console.log(getProps(['a', '0'], object)) console.log(getProps(['a', '0', 'b'], object)) console.log(getProps(['a', '0', 'b', 'c'], object)) console.log(getProps(['a', '0', 'b', 'c', 'd'], object))
自判断连接,自判断连接还未归入官方规范中,只处于第一阶段的实验特性。您须要在 babelrc 中添加 @ babel / plugin-proposal-optional-chaining 后方可以使用它。spa
var object = { 'a': [{ 'b': { 'c': 3 } }] } console.log(object?.a[0]?.b?.c?.d)