<aside> โ reduec()๋ฌธ ํ์: ๋ฐฐ์ด๋ช .reduce(์ฝ๋ฐฑํจ์, ์ด๊ธฐ๊ฐ)
</aside>
<aside> โ callback function ํ์:
</aside>
const sum = [1,2,3,4,].reduce((acc,cur,idx,arr) => acc+cur)
console.log(sum) //10
Array.prototype.reduce() - JavaScript | MDN
let name = "์ดํ๋ฏผ"
name.charCodeAt(0) // 51060, '์ด'์ ํด๋นํ๋ ์ ๋์ฝ๋ ๊ฐ
name.charCodeAt(1) // 53468
name.charCodeAt(2) // 48124
String.fromCharCode(51060, 53468, 48124) // '์ดํ๋ฏผ'
String.prototype.charCodeAt() - JavaScript | MDN
String.fromCharCode() - JavaScript | MDN
// ์ด๋ค ๋ฌธ์ฅ์ ๊ฐ ์ํ๋ฒณ์ ์ผ์ ํ ๊ฑฐ๋ฆฌ๋งํผ ๋ฐ์ด์ ๋ค๋ฅธ ์ํ๋ฒณ์ผ๋ก ๋ฐ๊พธ๋ ์ํธํ ๋ฐฉ์์ ์์ ์ํธ๋ผ๊ณ ํฉ๋๋ค.
// ์๋ฅผ ๋ค์ด "AB"๋ 1๋งํผ ๋ฐ๋ฉด "BC"๊ฐ ๋๊ณ , 3๋งํผ ๋ฐ๋ฉด "DE"๊ฐ ๋ฉ๋๋ค.
// "z"๋ 1๋งํผ ๋ฐ๋ฉด "a"๊ฐ ๋ฉ๋๋ค.
// ๋ฌธ์์ด s์ ๊ฑฐ๋ฆฌ n์ ์
๋ ฅ๋ฐ์ s๋ฅผ n๋งํผ ๋ฏผ ์ํธ๋ฌธ์ ๋ง๋๋ ํจ์, solution์ ์์ฑํด ๋ณด์ธ์.
// ๊ณต๋ฐฑ์ ์๋ฌด๋ฆฌ ๋ฐ์ด๋ ๊ณต๋ฐฑ์
๋๋ค.
// s๋ ์ํ๋ฒณ ์๋ฌธ์, ๋๋ฌธ์, ๊ณต๋ฐฑ์ผ๋ก๋ง ์ด๋ฃจ์ด์ ธ ์์ต๋๋ค.
// s์ ๊ธธ์ด๋ 8000์ดํ์
๋๋ค.
// n์ 1 ์ด์, 25์ดํ์ธ ์์ฐ์์
๋๋ค.
function solution(s,n){
}
// ๋ฌธ์์ด 2๊ฐ๋ก ๋๋ ์ ์คํ
const lower = 'abcdefghijklmnopqrstuvwxyz'
const upper = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
function solution(s,n){
let answer = ""
for(let i = 0; i <s.length; i++){
if(s[i] === " "){
answer +=s[i]
} else {
const word = lower.includes(s[i]) ? lower : upper
let idx = word.indexOf(s[i]) + n
if(word[idx] === undefined){
idx -=26
}
answer +=word[idx]
}
}
return answer
}
// reduce() ์ฌ์ฉ
const lower2 = 'abcdefghijklmnopqrstuvwxyz'
const upper2 = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
function solution(s,n){
const answer = s.split("").reduce((acc,cur)=> {
const word = lower.includes(cur) ? lower2 : upper2
let idx = word.indexOf([cur]) + n
if( idx >= 26){
idx -=26
}
return acc + (
cur === " " ? " " : word[idx]
)
}, "")
return answer
}
// ์์คํค ์ฝ๋ ์ด์ฉํ ํ์ด
// charCodeAt() : ๋ฌธ์์ ์ ๋์ฝ๋ ๋ฐ์ดํฐ(๋ฒํธ)๋ฅผ ๋ฆฌํด
// String.fromCharCode() : ์ ๋์ฝ๋ ๋ฐ์ดํฐ(๋ฒํธ)๋ฅผ ๋ฌธ์๋ก ๋ฆฌํด
// ๋๋ฌธ์ : 65 ~ 90
// ์๋ฌธ์ : 97 ~ 122
function solution(s,n){
let answer = ""
for (let i = 0 ; i < s.length; i++){
if (s[i] === " ") {
answer += " "
}
else {
let idx = s[i].charCodeAt() + n
// ์๋ฌธ์ z๋ฅผ ๋์ด๊ฐ๋ค๊ฑฐ๋
// ๋๋ฌธ์ Z๋ฅผ ๋์ด๊ฐ๋ค๊ฑฐ๋ ๊ธฐ์กด์ idx ๊ฐ์ด ์๋ฌธ์์ธ ๊ฒฝ์ฐ
if (idx > 122 || ( idx > 90 && (idx - n) < 97 )){
idx -=26
}
answer += String.fromCharCode(idx);
}
}
return answer
}