반응형
Notice
Recent Posts
Recent Comments
Link
관리 메뉴

짧은코딩

JS 기본 문법 정리 본문

반응형

Math.ceil()

Math.ceil(.95);    // 1
Math.ceil(4);      // 4
Math.ceil(7.004);  // 8
Math.ceil(-0.95);  // -0
Math.ceil(-4);     // -4
Math.ceil(-7.004); // -7

무조건 올림해준다.

for문

-범위로 구하기

for (let i = 1; i <= n; i++) {
  answer += i;
}

-배열로 구하기

for (let x of arr) {
  if (x % 2 === 1) {
    answer.push(x);
  }
}

forEach문

      a = [1, 2, 3, 4, 5];
      a.forEach(function (v, i) {
        console.log(v, i);
      });

결과가 이렇게 출력이된다. i 부분은 생략이 가능하다.

 

      a = [1, 2, 3, 4, 5];
      a.forEach(
        function (v, i) {
          console.log(v, i, this);
        },
        [1, 2]
      );

이렇게도 사용이 가능하다.

map

map은 배열의 요소들을 활용해서 새로운 배열을 만드는 것이다.

a = [1, 2, 3, 4, 5];
let answer = a.map(
        function (v, i) {
          return v * v;
        },
        [1, 2]
);

이런 새로운 배열이 나온다.

      a = [1, 2, 3, 4, 5];
      let answer = a.map(
        function (v, i) {
          if (v % 2 == 0) return v;
        },
        [1, 2]
      );

map는 아무리 조건문을 사용해도 길이는 원본 배열의 길이와 같다. 그렇기에 조건에 맞지 않은 부분에는 undefined가 들어간다.

filter

filter은 map과 다르게 원본 배열의 길이와 새로운 배열의 길이가 다를 수 있다.

      a = [1, 2, 3, 4, 5];
      let answer = a.filter(
        function (v, i) {
          return v % 2 == 0;
        },
        [1, 2]
      );

조건이 참인 요소만 새로운 배열에 포함해준다.

reduce

reduce는 배열이 아니라 값을 생성해서 리턴해준다.

      a = [1, 2, 3, 4, 5];
      answer = a.reduce(function (acc, v) {
        return acc + v;
      }, 0);

reduce 안에 콜백 함수를 보면 acc는 더한 값을 저장하는 거고, 0은 초기값이다.

MAX_SAFE_INTEGER

min = Number.MAX_SAFE_INTEGER;

보통 min 값을 구할 땐 min에 가장 큰 값을 넣는다. 위 코드처럼 사용하면 안정적인 가장 큰 값을 자동으로 min 값에 넣는다.

Math.min

let answer = Math.min(...arr);

Math.min으로 최소값을 구할 수 있다. 하지만 인자로 배열을 주면 ...을 이용해서 펼쳐서 입력해야 한다.

toString, slice

for (let x of arr) {
  if (
    parseInt(x.toString().slice(-1)) ===
    parseInt(day.toString().slice(-1))
  ) {
    answer += 1;
  }
}

toString는 문자열로 바꾸는 것, slice(-1)은 마지막 문자를 가져오는 것

반응형

'코딩테스트 with JS > 자바스크립트 알고리즘 문제풀이(인프런)' 카테고리의 다른 글

대문자 찾기  (0) 2022.08.07
문자 찾기  (0) 2022.08.06
A를 #으로  (0) 2022.08.05
일곱 난쟁이  (0) 2022.08.05
10부제  (0) 2022.08.02
Comments