假设有一个要传给后端的formData
let formData = {
a:0,
b:'123',
c:'456'
}
但如果a=0,b不能传过去,这时候我都是
a === 0 && delete formData.b
但如果需要做很多判断,就显得代码不是很好看了,有什么方法能优雅一点的解决呢
const getFilterValue = (array, value) => {
value = JSON.parse(JSON.stringify(value))
array.forEach(item => {
const newItem = Object.entries(item)[0]
if (value[newItem[0]] === newItem[1]) delete value[item.del]
})
return value
}
let formData = {
a: 0,
b: '123',
c: '456'
}
//条件,删除值
const remote = [{ a: 0, del: 'b' }]
getFilterValue(remote, formData)
如果想不受删除影响将getFilterValue改为
const getFilterValue = (array, value) => {
const newValue = JSON.parse(JSON.stringify(value))
array.forEach(item => {
const newItem = Object.entries(item)[0]
if (value[newItem[0]] === newItem[1]) delete newValue[item.del]
})
return newValue
}