二、 javascript过滤对象中为空字符的字段并 封装一个过滤对象中空字符的函数
1: 过滤对象中为空字符的字段
输入:{name:'',age:12}
输出:{age:12}
思路:这个题是过滤对象中的空字符串,所以要想找到空字符串肯定要遍历这个对象。遍历对象跟遍历数组不同,遍历对象使用for.....in。这个要注意的是对象中属性与值在不能代码段的表示方式,这也是这个题的关键。这里呢有两个思路,方法一是找到这个空字符串然后使用delete删掉。方法二是找到没有空字符串的然后赋值给新对象。
var obj={name:'',age:12,sex:''}
var arr={} //声明一个新的对象来存放想要的对象
for(var key in obj){ //遍历对象
// 方法一
// if(obj[key]==' '){ //这里就是判断在对象中有没有空字符穿
// delete obj[key]
// }
// 方法二:
if(obj[key]!==''){ //这里是判断不是空字符的,然后把没有空字符的赋值给新的对象
arr[key]=obj[key]
}
}
obj=arr //最后再把求出的新对象的值赋给obj
console.log(obj);
2::封装一个过滤对象中空字符的函数
输入:{name:'',age:12}
输出:{age:12}
思路:大致思路跟过滤对象中为空字符的字段一致,可以先出这个最后在封装到函数内。
var obj={name:'',age:12}
var arr={};
function filter(onj){ //括号内是形参,接受的是实参的值
for(var key in onj){ //遍历对象,注意此时onj的值是obj的值,值相同但意义不同
if(onj[key]==''){ //这里就是判断在对象中有没有空字符穿
delete onj[key];
}else{
arr[key]=onj[key]
}
}
return arr;
obj=arr
}
obj= filter(obj);//括号内的是实参,接受的是对象obj的值,然后把值传给形参
console.log(obj); //打印验证