Did you know you can add properties conditionally to an object with spread?
so instead of
function getUser(banned) {
const userStatus = {banned, banReason: 'Wizard'};
// only combine the user status if the user is banned
const user = { name: 'Micah' };
if(userStatus.banned) {
Object.assign(user, userStatus);
}
return user;
}
console.log(getUser(true));
console.log(getUser(false));
you can do
function getUser(banned) {
const userStatus = {banned, banReason: 'Wizard'};
// only combine the user status if the user is banned
return {
name: 'Micah',
...userStatus.banned && userStatus,
}
}
console.log(getUser(true));
console.log(getUser(false));
Outputs
{ name: 'Micah', banned: true, banReason: 'Wizard' }
{ name: 'Micah' }
Neat!
Top comments (0)