코딩테스트/프로그래머스 기초 트레이닝

[Javascript] 글자 이어 붙여 문자열 만들기

dev_swH 2023. 5. 22. 22:55

문제 설명

 

문자열 my_string과 정수 배열 index_list가 매개변수로 주어집니다. my_string의 index_list의 원소들에 해당하는 인덱스의 글자들을 순서대로 이어 붙인 문자열을 return 하는 solution 함수를 작성해 주세요.

 

정수 배열에 forEach() 콜백 함수를 돌려 빈 문자열에 합치는 방식으로 처리하려고 했는데 이상하게 자꾸 오류가 났다.

 

그래서 차선책으로 새 배열을 만든 다음 하나의 문자열로 변환하는 방식을 택했다.

첫 문제 풀이 :

function solution(my_string, index_list) {
    return index_list.map((index) => my_string[index]).join("");
}

 

그러고 다른 사람의 풀이를 구경하는데 내가 원래 하고 싶었던 방식과 흡사하게 해낸 사람이 있어서!!! 계속 도전해봤다.

두 번째 문제 풀이 :

function solution(my_string, index_list) {
    let answer = "";
    index_list.forEach(index => answer += my_string[index]);
    return answer;
}

 

오류가 나는 원인은 answer을 변수로 선언하지 않고 상수로 선언해서였다.

상수를 선언하고 값을 할당할 경우, 값이 배열이나 객체라면 그 안의 요소나 속성은 업데이트할 수 있지만 값 자체는 재할당이 안 되는데

콜백 함수에서 자꾸 재할당을 하려고 하니 오류가 난 것이었다.

기초 중에 기초인데 은근히 놓치고 습관적으로 const로 선언하게 된다 ㅠㅠ

기초를 소홀히 하지 말자!!