场景:
传给ajax的params,参数值为空则不保留key,如
let params = {
age: this.age ? age : '',
curPage: 1,
prePage: 20,
}
这样写如果要判断0或者false就要写很长一串,有更优雅的方法吗?
场景:
传给ajax的params,参数值为空则不保留key,如
let params = {
age: this.age ? age : '',
curPage: 1,
prePage: 20,
}
这样写如果要判断0或者false就要写很长一串,有更优雅的方法吗?
我自己用递归
写了一个clean
方法,默认清空null
和undefined
,空字符串
给了第二个参数。
0
和false
都是有效参数,为什么要过滤呢?
clean({
age: this.age,
curPage: 1,
prePage: 20,
name: null,
job: undefined,
card: ''
}, true)
两种方法试了下
const age = 0
let param1 = JSON.parse(JSON.stringify({
curPage:1,
age: age || undefined
}))
let params2 = {
...Object.defineProperties({}, {
p1: { value: 123, enumerable: true },
age: {value:age,enumerable:!!age },
})
}
const states = {
[userId]: {
[projectId]: {
orgId,
pageSize,
radio,
taskId: this.taskId,
...active,
},
},
};
// eslint-disable-next-line consistent-return
const b = JSON.stringify(states, (key, value) => {
if (value !== null && value !== '') {
return value;
}
});
const param = JSON.parse(b);
10 回答11.1k 阅读
6 回答3k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决
3 回答5.1k 阅读✓ 已解决
3 回答1.8k 阅读✓ 已解决