https://school.programmers.co.kr/learn/courses/30/lessons/120895
function solution(my_string, num1, num2) {
return (
my_string.slice(0, num1) +
my_string[num2] +
my_string.slice(num1 + 1, num2) +
my_string[num1] +
my_string.slice(num2 + 1)
);
}
JS
는 문자열 속 글자를 직접 바꾸지 못하기에 필요한 부분을 slice
하여 이어 붙임.function solution(my_string, num1, num2) {
const arr = my_string.split("");
[arr[num1], arr[num2]] = [arr[num2], arr[num1]];
return arr.join("");
}
https://school.programmers.co.kr/learn/courses/30/lessons/120894
function solution(number) {
const answer = number
.replaceAll(/zero/g, 0)
.replaceAll(/one/g, 1)
.replaceAll(/two/g, 2)
.replaceAll(/three/g, 3)
.replaceAll(/four/g, 4)
.replaceAll(/five/g, 5)
.replaceAll(/six/g, 6)
.replaceAll(/seven/g, 7)
.replaceAll(/eight/g, 8)
.replaceAll(/nine/g, 9);
return Number(answer);
}
replace
두 번째 인자로 콜백을 줘서 해결하거나 reduce
에서 인덱스로 해결하더라.// replace 콜백 이용
const obj = {
zero: 0, one: 1, two: 2, three: 3, four: 4,
five: 5, six: 6, seven: 7, eight: 8, nine: 9
};
const num = numbers.replace(/zero|one|two|three|four|five|six|seven|eight|nine/g,
(v) => obj[v]);
// reduce 인덱스 이용
['zero','one','two','three','four','five','six','seven','eight','nine']
.reduce((t,s,i)=>t.replaceAll(s,i),n)
https://school.programmers.co.kr/learn/courses/30/lessons/120893
function solution(my_string) {
let answer = "";
for (let i = 0; i < my_string.length; i++) {
if (my_string[i] === my_string[i].toLowerCase()) {
answer += my_string[i].toUpperCase();
} else {
answer += my_string[i].toLowerCase();
}
}
return answer;
}
for...of
쓰거나 배열로 변환 후 map
등을 사용했어도 되었을 듯.변수['함수명']()
해도 함수가 실행됨을 배움. 이런 것도 있구나.https://school.programmers.co.kr/learn/courses/30/lessons/120892
function solution(cipher, code) {
return cipher.split("").filter((v,i)=>(i+1) % code === 0).join("")
}
cipher
의 인덱스 + 1이 code
와 나눠 떨어지는 것만 남기고 join
한다.https://school.programmers.co.kr/learn/courses/30/lessons/120891
function solution(order) {
return String(order).match(/3|6|9/g) ? String(order).match(/3|6|9/g).length : 0;
}