[TIL] 2022-11-11
1. 직접 구현해본 array.filter
아마 이것보다 훨씬 더 복잡하고 조건도 많고 깔끔하겠지만 내 의도대로 여기서는 동작한다.
function solution(my_string) {
var answer = "";
my_string = my_string.split("");
my_string.myFilter = myFilter;
answer = my_string.myFilter((letter, index) => my_string.indexOf(letter) === index);
return answer;
}
const myFilter = function (callback) {
let myArray = this.map((one, index) => {
if (callback(one, index) === true) {
return one;
}
});
return myArray.join('');
};
2. javascript에서 reduce는 배열의 값을 누적해서 비교시키고 최종으로 "하나"의 값을 도출시키고자 할때 많이 사용한다.
array.reduce(function(previousValue, currentValue, currentIndex, array){return 누적값}, initialValue)
아래 내용을 잘 기억하자. initialValue는 값이 존재하면 해당 값으로 prev를 시작하고 없으면 배열의 0번째 인덱스부터 initValue가 시작한다.
콜백함수
- previousValue : 이전값. 누적할때마다 콜백함수의 return값이 들어감
- currentValue : 다음값
- currentIndex : 누적 순번(인덱스)
- array : 사용할 원배열
- initialValue : 콜백함수 첫번째 인수 값에 사용되는 값
3. 알고리즘 문제를 풀때 가장 가까운수나 가장 작은 수, 큰 수, 이런 것이 조건에 있을때는 보통 정렬을 하는 게 더 빠르고 정확한 답을 찾을 수 있는 것 같다.
4. javascript 에서 숫자 -> 문자열 변환하는 4가지 방법
1. toString(): (12).toString() Number.toString()
2. 빈 문자열 붙이기: 123 + ""
3. 템플릿문자열: `${123}`
4. String(): String(123)
5. javascript 에서 문자열 -> 숫자 변환하는 4가지 방법
1. parseInt(): parseInt('1234.5'); // 출력 1234 실수는 모두 정수로 변환된다.
2. parseFloat(): parseFloat('1234.5'); //실수를 변환할때 사용한다.
3. Math의 ceil(올림), round(반올림), floor(버림): 모두 각각의 처리를 한 정수를 변환한다.
4. Number(): String(123)