오늘은 내일배움 캠프 수료식이 있는 날이다. 오프라인이었는데 거리가 너무 먼 상태인데 가게까지 봐야해서 결국 참여하지 못했다.
가게 바쁜 타임 뛰고, 알바생 면접 봐주고, 고기 잡는 날이여서 고기 잡고 두드려서 보관하고.. 그 와중 중간 짬 시간에 알고리즘 문제 풀고 포트폴리오 내용도 추가하느라 참 하루가 바쁘다.
이번 달까지만 도와달라고 하시고 그 대상이 부모님인데 어찌 거절하겠는가 그냥 도와드려야지요😊
홀 전체 매니저로서 몇년동안 지내다보니 부모님도 내가 있어야 안심되는 경향이 있어 어쩔 수가 ㅇ벗다.
아무튼 오늘은 알고리즘 문제를 풀다가 새로운 문법을 배웠는데 reduce()와toFixed이다
일단
reduce()
이 메서드는 배열의 각 요소에 대해 주어진 리듀서(reducer)함수를 실행하고, 하나의 결과 값을 반환한다.
예시로
const array1 = [1, 2, 3, 4];
// 0 + 1 + 2 + 3 + 4
const sumWithInitial = array1.reduce(
(acc, value) => acc + value,
0
);
console.log(sumWithInitial);
// expected output: 10
reduce는 4개의 인자를 가지는데
accmulator(누산기)
- 반환값을 누적하고 콜백의 이전 반환값 또는, 콜백의 첫 번째 호출이면서 initialValue(초기값)을 제공한 경우에는 initialValue의 값입니다.
currentValue(현재값)
- 처리할 현재 요소
currentIndex(현재 인덱스) /optional
- 처리할 현재 요소의 인덱스. initialValue를 제공한 경우 0, 아니면 1부터 시작
array(원본배열) / optional
- reduce()를 호출한 배열.
initialValue (초기값) / optional
- callback의 최초 호출에서 첫 번째 인수에 재공하는 값 / 빈 배열에서 초기값 없이 reduce()를 호출하면 오류가 발생한다.
콜백의 최초 호출 때 accumulator와 currentValue는 다음 두 가지 값 중 하나를 가질 수 있습니다. 만약 reduce() 함수 호출에서 initialValue를 제공한 경우, accumulator는 initialValue와 같고 currentValue는 배열의 첫 번째 값과 같습니다. initialValue를 제공하지 않았다면, accumulator는 배열의 첫 번째 값과 같고 currentValue는 두 번째와 같습니다.
참고 : initialValue를 제공하지 않으면, reduce()는 인덱스 1부터 시작해 콜백 함수를 실행하고 첫 번째 인덱스는 건너 뜁니다. initialValue를 제공하면 인덱스 0에서 시작합니다.
toFixed
Number 인스턴스의 소수 부분 자릿수를 전달받은 값으로 고정한 후 , 그 값을 문자열로 반환한다.
NumberObject.toFixed([소수 부분의 자릿수])
매개변수는 소수점 뒤에 나타날 자릿수로 0이상 100이하의 값을 사용할 수 있다.(지키지 않으면 오류 발생) 구현체에 따라 더 넓은 범위의 값을 지원할 수도 있다.
값을 지정하지 않으면 0을 사용
반환값
숫자를 고정 소수점 표기법으로 표기해 반환, 소수점 이하가 길면 숫자를 반올림하고, 짧아서 부족할 경우 뒤를 0으로 채운다.
메서드를 호출한 숫자의 크기가 1e+21보다 크다면 Number.prototype.toString()을 호출하여 받은 지수 표기법 결과를 대신 반환
예시
let num = 1.23456789
console.log(num.toFixed()); // 1
console.log(num.toFixed(6)); // 1.234567
console.log(num.toFixed(3)); // 1.235
console.log(num.toFixed(1)); // 1.2
let num2 = 0.0005678
console.log(num2.toFixed()); // 0
console.log(num2.toFixed(5)); // 0.00057
console.log(num2.toFixed(3)); // 0.001
console.log(num2.toFixed(1)); // 0.0
let num3 = 123.45
console.log(num3.toFixed(102)); // 오류
포트폴리오 내용 추가하기(내가맡은기능 부분) -> 내일 트러블 슈팅에 관해서도 추가하기
알고리즘 문제 풀기