Algorithm 11 - [JS] Format a string of names
Format a string of names like 'Bart, Lisa & Maggie'.
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 '.'.
📌 Needs ) &로 구분해야 하는 마지막 두 이름을 제외하고 쉼표로 구분된 이름 목록 형식의 문자열을 반환하라.
📁 Sol ) if 조건문과 map, 조건부 연산자 ?
사용
function list(names){
let str = '';
if (names.length !== 0) {
let last = names.pop();
str = names.map( (val, i, arr) => {
if (i !== arr[arr.length - 1]) {
return val.name;
}
}).join(', ')
str += str !== '' ? ' & ' + last.name : last.name;
}
return str;
}
💡 Other ways to solve ) replace 사용하여 코드 단순화
function list(names) {
return names.map(o => o.name).join(', ').replace(/^(.*)(, )(.*)$/, '$1 & $3');
}
Author And Source
이 문제에 관하여(Algorithm 11 - [JS] Format a string of names), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@threeplef/Algorithm-11-JS-Format-a-string-of-names저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)