kon*_*hou 0 javascript null properties object
我总是需要处理存在属性不确定的多级js对象:
try { value1 = obj.a.b.c; } catch(e) { value1 = 1; }
try { value2 = obj.d.e.f; } catch(e) { value2 = 2; }
......
Run Code Online (Sandbox Code Playgroud)
是否有更简单的方法或泛型函数(例如ifnull(obj.def,2))不需要大量的尝试捕获?
var value1 = (obj.a && obj.a.b && obj.a.b.c) || 1;
Run Code Online (Sandbox Code Playgroud)
http://jsfiddle.net/DerekL/UfJEQ/
或者用这个:
function ifNull(obj, key, defVal){
var keys = key.split("."), value;
for(var i = 0; i < keys.length; i++){
if(typeof obj[keys[i]] !== "undefined"){
value = obj = obj[keys[i]];
}else{
return defVal;
}
}
return value;
}
var value1 = ifNull(obj, "a.b.c", 1);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1734 次 |
| 最近记录: |