有一个对象
a:{
b:{
c:{
....
}
}
}
要取值
let val = a.b.c.d.e.f;
必须判断前面几级是否存在,否则执行时会报错。所以一般要写成这样
if (a && a.b && a.b.c && a.b.c.d && a.b.c.e) {
let val = a.b.c.d.e.f;
}
有无优雅的写法或node包可以解决?
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
lodash的 get。
说下个人看法。
首先超过3级(包括3级)的嵌套不应该太多,如果有,首先看看是不是设计上除了问题。其次,如果遇到了,那么
这个是没有必要的,报错才是正常的,提醒你哪里写漏或写错,改掉就好了,即使是在插件或者框架中,也是对个别比较重要的参数进行验证,否则调用一方很难判断错误源。参数验证大多不会是这种地方(提示xxx是undeifed或者null,xxx() is not a function这种),一般的异常提示(error),旨在明确一个复杂逻辑或亦混淆逻辑的错误源。
判断最后一级的数据是正确不就可以了么?