Q:用途是啥?
A:告别后端数据返回无休止的判断对象值
/*
uncheck为false返回[code, result] code为1才会有正确的result
uncheck为true返回result或者false
*/
function getObjVal(origin,args,uncheck){
var result = {};
var warning = { code : 1 };
if(!origin){
result = [0, false];
warning = {
'code' : 0,
'data' : {
'origin' : origin,
'args' : args
}
};
}else{
if(!args || !args.length){
result = [-2, false];
warning = {
'code' : -2,
'data' : "缺少keys"
};
}else{
var key;
for(var i = 0; i < args.length; i++){
key = args[i];
if(origin[key]){
origin = origin[key];
}else{
result = [-1, false];
warning = {
'code' : -1,
'data' : {
'origin' : origin,
'args' : args,
'breakKey' : key
}
};
break;
}
}
}
}
if(uncheck){
if(warning.code != 1){
return false;
}else{
return origin;
}
}else{
if(warning.code == 0){
console.warn(warning);
}else if(warning.code == -1){
console.warn(warning);
}else if(warning.code == -2){
console.warn(warning);
}else{ //
result = [1,origin];
}
return result;
}
}
基本用法:
1.let [code, result] = getObjVal({test :{ a : { b:1 }} },['test','a','b']);
2.let result2 = getObjVal({test :{ a : { b:1 }} },['test','a','b2'],true);
网友评论