frontend-challenges
frontend-challenges copied to clipboard
10 - classNames - javascript
index.js
export function classNames (...args) {
const result=[];
if(args.length===0){
return result.join(' ');
}
args.forEach(el=>{
if(Array.isArray(el)){
result.push(classNames(...el));
}
else if(['string','number'].includes(typeof el)){
result.push(el);
}
else if(el && typeof el ==='object'){
const validEntries=Object.entries(el).filter(([key,value])=>!!value);
result.push(...validEntries.map(([key,value])=>key));
}
})
return result.join(' ');
};