摘要:问题上述代码会返回方法一方法二使用方法三方法四自判断链接自判断链接还未纳入官方规范中,只处于第一阶段的实验特性。您需要在中添加后方可使用它。参考链接译优秀开发人员应掌握的个技巧
问题
var object = { "a": [{ "b": { "c": 3 } }] } console.log(object.a[0].b.c.d)
上述代码会返回
方法一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)方法二
使用lodash
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 后方可使用它。
var object = { "a": [{ "b": { "c": 3 } }] } console.log(object?.a[0]?.b?.c?.d)参考链接
[译] 优秀 JavaScript 开发人员应掌握的 9 个技巧
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/101337.html
摘要:常出现的错误前十位为了可读性,错误名称进行了一定的简写。让我们深入了解每个错误发生的原因以及解决方法。这个问题很容易解决。当未捕获的错误跨越违法跨域策略的域边界时,会发生脚本错误。这是当你在中试图调用的方法时出现的错误。 JavaScript常出现的错误前十位 showImg(https://segmentfault.com/img/bV3Z1z?w=1116&h=691); 为了可读...
摘要:提供一套错误处理机制,错误是干扰程序正常流程的非正常的事故。构造函数是通用错误类型,除了类型,还有等类型。浏览器输出其他错误类型构造函数是继承,实例是一致的。数值超出有效范围数值超出有效范围创建一个实例,表示错误的原因无效引用。 同步发布于 https://github.com/xianshanna... 我的建议是不要隐藏错误,勇敢地抛出来。没有人会因为代码出现 bug 导致程序崩溃...
摘要:类型的错误会在数值超出相应范围时触发。最常发生类型错误的情况,就是传递给函数的参数事先未经检查,结果传入类型与预期类型不相符。捕获错误的目的在于避免浏览器以默认方式处理它们而抛出错误的目的在于提供错误发生具体原因的消息。 0 前言 目前读到了《高程3》的错误检测部分,现在先挖一个坑,关于错误检测应该写三篇总结:firebug检测错误和输出信息;try-catch错误捕获;常见错误种类。...
摘要:类型的错误会在数值超出相应范围时触发。最常发生类型错误的情况,就是传递给函数的参数事先未经检查,结果传入类型与预期类型不相符。捕获错误的目的在于避免浏览器以默认方式处理它们而抛出错误的目的在于提供错误发生具体原因的消息。 0 前言 目前读到了《高程3》的错误检测部分,现在先挖一个坑,关于错误检测应该写三篇总结:firebug检测错误和输出信息;try-catch错误捕获;常见错误种类。...
阅读 2817·2021-11-17 09:33
阅读 3633·2021-11-16 11:42
阅读 3451·2021-10-26 09:50
阅读 1267·2021-09-22 15:49
阅读 2983·2021-08-10 09:44
阅读 3555·2019-08-29 18:36
阅读 3858·2019-08-29 16:43
阅读 2152·2019-08-29 14:10