나는 현재 프로그래머스에 있는 코딩테스트 문제 중에서도 입문 문제 100제를 풀고 있다.
그렇게 미루고 미루다가 이제는 더이상 물러날 곳이 없을 때
(항상 저 춤을 추며 압박감을 견디며 level 2를 풀다가 현타가 와서 몇 개월 안보고 풀다가 현타오고 계속 반복)
오히려 마음이 아 슬슬 풀어야겠다 하면서 가볍게 생각하며 풀어보니까 더 잘되는 것 같고 사실 난이도를 아주 낮췄다. 그러면서 확실히 내 위치를 알게 되었다.
내장함수조차 잘 모르는데 어캐 코테를 푸는데~~ 알고리즘 백날 알아도 js를 잘 모르는데~~
각설하고 입문 문제 풀면서 모르는 내장함수를 좀 깊게 찾아보고자 글을 쓰려고한다. 예시나, 내가 문풀하면서 다른 사람 문풀도 볼 수 있는데 그것도 참고할 것 같다.
소수값이 존재할 때 소수값을 버리는 역할을 한다.
값이 음수일 때 결과 값이 아래와 같이 음수에서 -1 더 더해졌다.
이것으로 보아
Math.Floor는 소수값을 버리면서 내림하는 역할도 하는 것을 확인할 수 있다.
var result = Math.Floor(-22.4);
console.log(result);//-23
Math.ceil(3.2); //4
Math.ceil(-3.2); //-3
Math.ceil(null); //0
Math.round(1.5); //2
Math.round(-1.5);//-1
올림 반올림 내림할 때 음수값을 주의하기!
문자열에서 숫자를 추출하기 위한 함수이다.
문자열에 숫자가 맨 앞에 존재하면 해당 숫자를 추출할 수있지만, 그렇지 않으면 NaN을 출력한다.
parseInt('F', 16); // 15
console.log(+''); // 0
console.log(+true); // 1
console.log(+false); //0
console.log(+'hello');//NaN
The Math.trunc() method returns the integer part of a number.
정수부분만 리턴해주는 함수.
올림이나 내림을 하지 않고 소수점 이하는 버린다.
위 ceil,floor,round 함수와 다르게 음수값은 음수의 정수값 그대로 나온다.
Math.trunc(-2.32); //-2
Math.trunc(8.76); //8
reduce에 대한 여러 글을 읽었는데 생각보다 reduce가 다루는 내용이 많은 가보다. 객체도 나오고 숫자도 나오고 인덱스 어쩌구.. 배열에서 주로 사용하는 함수여서 그런 것 같은데 한번 차근차근 확인해보자.
arr.reduce(callback[, initialValue])
예시. 내가 코드문제 풀다가 되게 깔끔하게 풀었꼬 reduce를 쓰는 함수라서 저장해놨던 기억이 있다.
여기서는 화살표 함수를 변수로 넣어놨다.
reduce 함수의 요소들
callback
배열의 각 요소에 대해 실행할 함수. 다음 네 가지 인수를 받는다.
//numbers = [0,1,2,3,4];
function sol(numbers){
var answer = numbers.reduce((a,b)=>a+b,0)/numbers.length;
return answer;
함수를 넣을 때도 그 함수의 변수값이 정해져있어 보였다.
위에서 a값과 b값나타내는 값은 각각 accumulator,currentValue이다.
풀이를 해보자면..
첫반복 : a에 0번째 인덱스 값 0, 현재값 1번째 인덱스 값1 => 0 + 1 = 1
두번째 반복 : a에 첫반복 값 1, 현재값 2번째 인덱스 값2 => 1 + 2 = 3
세번째 반복 : a에 두번째 반복 값 3, 현재값 3번째 인덱스 값3 => 3 + 3 = 6
네번째 반복 : a에 세번째 반복 값 6, 현재 값 4번째 인덱스 값4 => 6 + 4 =10
최종 반환값 : 10
음 reduce는 간단하게 이렇게 정리하고 따로 reduce글을 작성해야될 것 같다. 생각보다 매개변수들도 많고 매개변수마다 환경이 달라지는 것 같다.
Chamgo