TIL: Today I Learned 42일차 [특정 문자 제거하기]
1. 문제점
알고리즘 문제풀이 특정문자 제거하기
2. 시도해본 것들
배열 myString을 만들고 문자열 my_string을 바로 대입하여 들어가도록 하려했다.
myString=my_string 과 같이 하자 에러가 발생했다.
1) 문자열을 바로 배열에 대입하면 에러 발생
VueBackbone: Adding new Model attributes after binding is not supported, provide defaults for all properties
[VueBackbone: 바인딩 후 새 모델 속성 추가가 지원되지 않음, 모든 속성에 대한 기본값 제공]
2) 결과값 도출시 a,b,c와 같이 간격이 생기는 문제발생
3. 해결과정
1) 문자열을 바로 배열에 대입하면 에러 발생
바로 문자열을 배열에 넣는 것이 아닌 문자열을 배열로 바꿔주는 함수를 찾았다.
Array.from(my_string)
2) 결과값 도출시 a,b,c와 같이 간격이 생기는 문제발생
처음에는 다음과 같이 리턴했다.
return myString.toString();
그러자 결과값이 a,b,c와 같이 나왔다. 배열을 바로 문자열로 바꿔주니 , 가 포함된 것이다.
toString 대신 join('')을 사용하니 해결완료
return myString.join('');
4. 알게 된 점
문자열을 바로 배열에 대입 못시키는구나 => Array.from(my_string)
배열에서 간격을 없앤 문자열을 만드려면 => return myString.join('');
+ 다른사람의 멋진 풀이
function solution(my_string, letter) {
return my_string.split(letter).join('');
}
나의 정답풀이
function solution(my_string, letter) {
var answer = '';
var myString = [];
myString = Array.from(my_string);
for(i=0; i<myString.length; i++){
if(myString[i] === letter){
myString.splice(i, 1);
i--;
}
}
return myString.join('');
}