JS根据条件处理对象参数

假设有一个要传给后端的formData

let formData = {
    a:0,
    b:'123',
    c:'456'
}

但如果a=0,b不能传过去,这时候我都是

a === 0 && delete formData.b

但如果需要做很多判断,就显得代码不是很好看了,有什么方法能优雅一点的解决呢

阅读 1k
1 个回答
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
}

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏