인프런 커뮤니티 질문&답변
안녕하세요 질문드립니다
작성
·
278
0
<body>
<script>
function solution(s){
let answer=s;
for(let x of answer){
if(x==='A') x='#';
}
return answer;
}
let str="BANANA";
console.log(solution(str));
</script>
</body>
이렇게 하면 정답출력이 안되는데 혹시 이유를 알수 있을까요?
퀴즈
46%나 틀려요. 한번 도전해보세요!
세 수 중 최솟값을 찾을 때, if 문만 사용한다면 어떤 방식으로 비교하는 것이 일반적인가요?
세 수를 한 번에 비교하여 가장 작은 수를 바로 찾습니다.
두 수의 최솟값을 먼저 찾고, 그 결과와 나머지 한 수를 비교합니다.
가장 큰 수를 먼저 찾은 후, 남은 두 수 중 작은 값을 찾습니다.
모든 가능한 쌍을 비교하여 가장 작은 값을 찾습니다.
답변 1
6
안녕하세요!
solution 함수 안의 for of문에서 문자열 타입 값이 저장된 answer의 한 글자씩
x에 차례대로 복사합니다.
이때 변수 x는 문자열 answer을 한 글자씩 나타내는게(가리키는게) 아닌
그 값을 복사해서 x라는 새로운 이름의 변수에 저장해준 것이기 때문에
x 에 새로운 값을 넣어줘도 원래 문자열 answer는 변화가 없습니다.
'깊은복사', '얕은복사' 키워드로 검색해보세요.
새로운 변수를 하나 생성하셔서 기존 문자열을 한글자씩 복사하시다가
질문글의 내용처럼 특정 문자일 경우 바꿔주시는 방법도 있고,
정규표현식을 사용하시거나 split과 join 함수를 사용하실 수도 있습니다.
replace()과 같은 String prototype methond
관련해서도 한번 찾아보세요!





