const obj = {
name: undefined,
age: 15,
school: 'Some school'
}
hasOnly = (obj, props) => _.isEqual(_.keys(obj).sort(), props.sort())
hasOnly(obj,['name','age']) //return false
hasOnly(obj,['name','age','city']) //return false
hasOnly(obj,['name','age','school']) //return true
make1ValuedObj = keys => _.zipObject(keys, Array(keys.length).fill(1))
hasOnly = (obj, props) => _.isEqual(make1ValuedObj(_.keys(obj)), make1ValuedObj(props))
hasOnly(obj,['name','age']) //return false
hasOnly(obj,['name','age','city']) //return false
hasOnly(obj,['name','age','school']) //return true
hasOnly = (obj,props) => {
var objProps = Object.keys(obj)
return objProps.length == props.length && props.every(p => objProps.includes(p))
}
hasOnly(obj,['name','age']) //return false
hasOnly(obj,['name','age','city']) //return false
hasOnly(obj,['name','age','school']) //return true