๐ ๋ฌธ์
๋ฌธ์์ด์ ์ ๋ ฅ๋ฐ์ ๋ฌธ์์ด์ ๊ตฌ์ฑํ๋ ๊ฐ ๋จ์ด์ ์ฒซ ๊ธ์๊ฐ ๋๋ฌธ์์ธ ๋ฌธ์์ด์ ๋ฆฌํดํด์ผ ํฉ๋๋ค.
โ ๏ธ ์ฃผ์์ฌํญ
- ๋จ์ด๋ ๊ณต๋ฐฑ์ผ๋ก ๊ตฌ๋ถํฉ๋๋ค.
- ์ฐ์๋ ๊ณต๋ฐฑ์ด ์กด์ฌํ ์ ์์ต๋๋ค.
- ๋น ๋ฌธ์์ด์ ์
๋ ฅ๋ฐ์ ๊ฒฝ์ฐ, ๋น ๋ฌธ์์ด์ ๋ฆฌํดํด์ผ ํฉ๋๋ค.
โ๐ป ๋ด ํ์ด
function letterCapitalize(str) {
// ์
๋ ฅ: str
// ์ถ๋ ฅ: ๋ฌธ์์ด์ ๊ตฌ์ฑํ๋ ๊ฐ ๋จ์ด๋ค์ ์ฒซ ๊ธ์๊ฐ ๋๋ฌธ์๋ก ๋ ๋ฌธ์์ด ๋ฆฌํด
// ๋น์ด์๋ ๋ฐฐ์ด์ ๋ง๋ค๊ณ , ์ ๋ฌ๋ฐ์ ๋ฌธ์์ด์ space๋ฅผ ๊ธฐ์ค์ผ๋ก ๊ฐ ๋จ์ด๋ก ์๋ผ, ๋ฐฐ์ด์ ์ ์ฅ
let words = str.split(' ');
// ์์ ๋ฐฐ์ด์ ๋ฌธ์์ด ๊ธธ์ด๊น์ง for loop๋ฅผ ๋๋ ค
for (let i = 0; i < words.length; i++) {
// ๊ฐ ๋จ์ด์ ์ฒซ๊ธ์๋ฅผ ๋๋ฌธ์๋ก ๋ณํ
// ๋๋ฌธ์์ธ ์ฒซ ๊ธ์ + ๊ทธ ๋ค์ ๊ธ์๋ค์ ๋ถ์ฌ ๋ฐฐ์ด์ ๊ฐ ๋จ์ด๋ฅผ ์
๋ฐ์ดํธ
if (words[i].length > 0) {
words[i] = words[i][0].toUpperCase() + words[i].substr(1);
}
}
// ๊ฐ ๋จ์ด ์ฌ์ด์ ์คํ์ด์ค ์ถ๊ฐ ํ ํฉ์ณ, ๋ฌธ์ฅ์ผ๋ก ์นํํ์ฌ ๋ฆฌํด
str = words.join(' ');
return str;
}
๐ก ์์๋๋ฉด ์ข์ ๊ฐ๋
substr( )
substr( ) ๋ฉ์๋๋ ๋ฌธ์์ด์์ ํน์ ์์น์์ ์์ํ์ฌ ํน์ ๋ฌธ์ ์๋งํผ์ ๋ฌธ์๋ค์ ๋ฐํํ๋ค. (์ถ์ฒ: mdn)
const str = 'Mozilla';
console.log(str.substr(1, 2)); // 'oz': index 1๋ถํฐ 2๊น์ง
console.log(str.substr(2)); // 'zilla': index 2๋ถํฐ ๋๊น์ง
console.log(str.substr(-3, 2)); // 'll': ๋์์๋ถํฐ 3๋ฒ์งธ๋ถํฐ 2๊ธ์
toUpperCase( )
toUpperCase( ) ๋ฉ์๋๋ ๋ฌธ์์ด์ ๋๋ฌธ์๋ก ๋ณํํ ๊ฐ์ ๋ฐํํ๋ค. JavaScript ๋ฌธ์์ด์ ๋ถ๋ณํ๋ฏ๋ก ์๋ณธ ๋ฌธ์์ด์๋ ์ํฅ์ ์ฃผ์ง ์๋๋ค. (์ถ์ฒ: mdn)
console.log('alphabet'.toUpperCase()); // 'ALPHABET'
๐ฉ๐ป๐ป ๋ฐฐ์ด ์
์ฒซ ๋ฒ์งธ ๊ธ์๋ฅผ ๋๋ฌธ์๋ก ๋ณํ ํ, substr( ) ๋ฉ์๋๋ก ์ฒซ ๋ฒ์งธ ๊ธ์ ๋ค์์ ๊ธ์๋ค์ ์ด์ด ๋ถ์ด๊ณ , ๊ฐ ๋จ์ด๋ค์ join( ) ๋ฉ์๋๋ก ์ด์ด ๋ถ์ฌ์ ๋ฆฌํดํ๋ค. ์ญ์ ๋ฉ์๋๋ค์ ์์ฑ๊ณผ ํ์ฉ๋ฒ์ ์ ์์์ผ ์ ์ฌ์ ์์ ์ธ ์ ์๋ค.
๋๋ถ์ด, words[i].substr(1) ๋ฅผ ์ฐ๋๋ฐ ์๊ดํธ ( )๋ฅผ ์ค์๋ก ๋๊ดํธ [ ] ๋ก ์จ์ ํ ์คํธ๊ฐ ํต๊ณผ๋์ง ์์๋ค. ์ฝ๋๋ฅผ ๋ง์ด ์จ์ ์์ ๋ง์ด ์ตํ๋์ผ ์์ํ ์ค์๋ฅผ ์ค์ผ ์ ์์ ๊ฒ ๊ฐ๋ค.
๋๊ธ