JavaScript 默认值剔除

2020-06-09  本文已影响0人  於風聽語
function trimObject (obj, defaultValue) {
    const trimmedObj = {}
    const trimmedKeys = Object.keys(obj).filter(key => {
        return JSON.stringify(obj[key]) !== JSON.stringify(defaultValue[key]) // 避免 Object、Function
    })

    trimmedKeys.forEach(key => {
        trimmedObj[key] = obj[key]
    })

    return trimmedObj
}
const defaultObject = {
    color: '',
    background: '',
    attrs: {
        id: 1
    }
}

const obj = {
    color: '#fff',
    background: '',
    other: 223,
    attrs: {
        id: 1
    }
}

console.log(JSON.stringify(trimObject(obj, defaultObject), null, 4))

—— 2020/06/09 By YSH, Mostly Suny.

上一篇 下一篇

猜你喜欢

热点阅读