www.codewars.com/kata/53368a47e38700bd8300030d/train/javascript
[ 문제 ]
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([]) // returns ''
Note: all the hashes are pre-validated and will only contain A-Z, a-z, '-' and '.'.
[ 풀이 ]
2020.11.21 (20min)
function list(names){
let answer = [];
let result;
if (names.length === 0) return '';
for (let n in names) {
const values = Object.values(names[n]).join('')
if (names.length === 1) {
return values
} else if (names.length === 2 ) {
answer.push(values)
result = answer.join(' & ')
} else {
answer.push(values);
result = answer.join(', ')
let n = result.lastIndexOf(', ')
result = result.slice(0, n) + result.slice(n).replace(', ', ' & ');
}
}
return result
}
Test는 잘 통과했는데, Attempt를 해보니 자꾸 answer 마지막에 'shuffle'이 찍혀서 빈 문자열이 push되어 안맞는다...
다른 곳에서 console 찍었을 땐 안찍히는걸 보아 오류가 있는게 아닐까 싶다
'■ 프로그래밍 > 알고리즘' 카테고리의 다른 글
JS 100제 - 1권 (Q1~) (0) | 2020.12.11 |
---|---|
[JS] Human Readable Time (0) | 2020.11.15 |
[JS] Vowel Count (0) | 2020.11.14 |
[JS] Stop gninnipS My sdroW! (0) | 2020.11.13 |
[JS] Regex validate PIN code (0) | 2020.11.12 |