4 回答

TA贡献1860条经验 获得超9个赞
您可以使用它来删除空属性 Object.keys(obj).forEach(key => obj[key] == undefined || obj[key] == '' ? delete obj[key] : '');
如果仅删除未定义的属性
Object.keys(obj).forEach(key => obj[key] == undefined ? delete obj[key] : '');
您的代码更新:
var obj = Object.assign({}, this.searchForm.value);
Object.keys(obj).forEach(key => obj[key] == undefined || obj[key] == '' ? delete obj[key] : '');
this.searchParams = obj

TA贡献1786条经验 获得超13个赞
您可以像这样强制排除的字段值: Object.assign({}, this.searchForm.value, {town: undefined, selling_type: undefined})

TA贡献1875条经验 获得超3个赞
使用Object.entries并过滤掉不需要的内容,然后reduce对它们进行使用以构建新对象
function filterObject(obj) {
return Object.entries(obj).filter(([key, value]) => value !== "").reduce((obj, entry) => {
const [key, value] = entry;
obj[key] = value;
return obj;
}, {});
}
console.log(filterObject({a:1, b:false, c:'', d:'something'}));

TA贡献1871条经验 获得超13个赞
或使用Object.fromEntries(目前仅在Chrome和Firefox上受支持)
function filterObject(obj) {
return Object.fromEntries(Object.entries(obj).filter(([key, value]) => value !== ""));
}
添加回答
举报