- 변경 전 코드
function replaceAll(str, from, to) { for(let i=0; i<str.length; i++) { if(str[i] === from) { str[i] = to; } } return str; }
자바스크립트에서는 인덱스에 접근 및 읽기는 가능하다.
인덱스에 접근해서 값 자체를 변경할 수는 없다.
=> 자바스크립트는 원시값은 불변이어야 하기 때문!!
- 변경 후 코드
function replaceAll(str, from, to) { let result = ''; for(let i=0; i<str.length; i++) { if(str[i] === from) { result += to; } else { result += str[i]; } } return result; }
- 입력은 number 타입이지만 출력은 string 타입일 때
문자열 + 숫자 = 문자열이 된다.
let output = makeMarginalString('abc');
console.log(output); // --> 'aababc'
output = makeMarginalString('flower');
console.log(output); // --> 'fflfloflowfloweflower'
output = makeMarginalString('');
console.log(output); // --> ''
function makeMarginalString(str) {
let result = '';
for(let j=0; j<str.length-1; j++) {
result += str[j];
for(let i=0; i<=j; i++) {
result += str[i];
}
}
return result + str[str.length-1];
}
function makeMarginalString(str) {
let result = '';
for(let j=0; j<str.length; j++) {
for(let i=0; i<=j; i++){
result += str[i];
}
}
return result;
}
같은 문제를 풀더라도 사람마다 다르게 코드를 작성했다. 또한, 한 문제를 처음 풀었을 때와 두 번째에 풀었을 때 코드를 다르게 작성한 경우도 있다.
문제를 다시 풀어보며 좀 더 간단하고 깔끔한 코드를 작성할 수 있도록 노력해야겠다. 그리고 페어프로그래밍을 통해서 코드 리뷰를 하며 다양한 방법을 익힐 수 있어서 좋았다.