Given: an array containing hashes of names
Return: a string formatted as a list of names separated by commas except
for the last two names, which should be separated by an ampersand.
Example:
list([ {name: 'Bart'}, {name: 'Lisa'}, {name: 'Maggie'} ])
// returns 'Bart, Lisa & Maggie'
list([ {name: 'Bart'}, {name: 'Lisa'} ])
// returns 'Bart & Lisa'
list([ {name: 'Bart'} ])
// returns 'Bart'
list([])
function list(names){
if(names.length === 0){
return '';
}
//요소 객체가 1개만 존재하면 1개만 내뱉고
if(names.length === 1){
return `${names[0].name}`
}
//요소 객체가 2개만 존재하면 &로 마무리한다.
if(names.length === 2){
return `${names[0].name} & ${names[1].name}`
}
//요소 객체가 많이 존재하면 계속 붙준다
let head = names[0].name;
let tail = names.slice(1);
return `${head}, `+list(tail);
}
다른 솔루션들 보는데 reduce, map과 정규식을 이용한 솔루션들이 보인다! 추후에 참조해서 풀어보자.