清除对象中值为空的属性
最近困扰我很久的一个问题,发送请求的时候如果 data 中某一数据为空,后端接收时去查询数据库返回的结果就会有问题,不传这个字段就没问题,所以就找到了这个办法:
//这个方法不会影响原来的对象,而是返回一个新对象
function filterParams(obj) {
var _newPar = {};
for (var key in obj) {
//如果对象属性的值不为空,就保存该属性(这里我做了限制,如果属性的值为0,保存该属性。如果属性的值全部是空格,属于为空。
if ((obj[key] === 0 ||obj[key] === false|| obj[key]) && obj[key].toString().replace(/(^\s*)|(\s*$)/g, '') !== '') {
_newPar[key] = obj[key];
}
}
return _newPar;
}
filterParams({a:"",b:null,c:"010",d:123}) //{c: "010", d: 123}