Javascript-如何创建有效的变量链
我的代码中的许多地方都有以下格式:Javascript-如何创建有效的变量链,javascript,Javascript,我的代码中的许多地方都有以下格式: if (a && a.b && a.b.c && a.b.c.d) { //do something with a.b.c.d } 如果a、b、c和d有一个更复杂的名字,这是非常难看、耗时且容易出错的 是否有一种“糖衣”,比如: if (valid(a.b.c.d)) { //do something with a.b.c.d } 您可以使用递归帮助器函数来执行此操作,例如: function
if (a && a.b && a.b.c && a.b.c.d) {
//do something with a.b.c.d
}
如果a、b、c和d有一个更复杂的名字,这是非常难看、耗时且容易出错的
是否有一种“糖衣”,比如:
if (valid(a.b.c.d)) {
//do something with a.b.c.d
}
您可以使用递归帮助器函数来执行此操作,例如:
function valid(obj, chain) {
if (!chain.length) {
return true;
}
var prop = chain.shift();
return !obj.hasOwnProperty(prop) ? false : valid(obj[prop], chain);
}
var a = { b: { c: { d: 1 } } };
console.log(valid(a, ['b', 'c', 'd'])); // true
console.log(valid(a, ['b', 'c', 'e'])); // false
您可以使用
try/catch
,但它有性能惩罚。dash有。
:这种功能本机不受支持(即使在ES6中)。但您可以使用libs,例如: