//是否包含该属性
function isAttr(obj,attr){
if(isObject(obj)&&obj.hasOwnProperty(attr)){
return true;
}
return false;
}
//是否是空
function isNull(value){
if((value === null|| value === undefined || value === "" || value.length===0)
&& ((typeof(value)) !== "number" && (typeof(value)) !== "boolean")){
return true;
}
return false;
}
//是否是Object
function isObject(value) {
if (!isNull(value)&&value && typeof (value) === "object") {
return true;
} else {
return false;
}
}
//返回对象中的属性,支持多级,
//案例:getVal(obj,"detail.users.0.nickName","");//获取detail属性中的users数组中的第0个元素的nickName,默认返回空字符串
function getVal(obj,expression,defVal){
var exps = expression.split("\.");
var nowObj = obj;
if(!isObject(nowObj)){
return defVal;
}
var explength = exps.length;
for(var i=0;i<exps.length;i++){
var exp = exps[i];
if(i == explength-1){
if(isObject(nowObj)&&isAttr(nowObj,exp)){
return nowObj[exp];
}
}else{
if(isObject(nowObj)&&isAttr(nowObj,exp)){
nowObj = nowObj[exp];
}else{
break;
}
}
}
return defVal;
}
//返回对象中的属性,支持多级,无属性则返回null
//案例:getVal(obj,"detail.users.0.nickName",null);//获取detail属性中的users数组中的第0个元素的nickName,默认返回null
function getVald(obj,expression){
return getVal(obj,expression,null);
}
JS各种非空和取值封装
最新推荐文章于 2024-05-07 09:59:04 发布