对象属性的选择和反选

对象属性的选择和反选

      • 作用
      • 测试数据
      • 正向选择
      • 属性反选

作用

设置对象属性白名单和黑名单

测试数据

var obj={
    name:"lengyuexin",
    like:"coding",
    soulmate:null
}

正向选择

function whiteList(obj = {}, keys = []) {
    return keys.map(key => key in obj ? { [key]: obj[key] } : {}).reduce((res, cur) => {
        return { ...res, ...cur }
    }, {})

}

// {name: "lengyuexin", like: "coding"}
whiteList(obj,['name','like'])

//还可以用一个骚操作,第二个参数为键数组
// {name: "lengyuexin", like: "coding"}
JSON.parse(JSON.stringify(obj,['name','like' ]))

属性反选

function blackList(obj = {}, keys = []) {
    const _keys = Object.keys(obj).filter(k => !keys.includes(k))
    return whiteList(obj, _keys);
}

//{soulmate: null}
blackList(obj,['name','like'])

你可能感兴趣的:(js,js)