JavaScript 문제 31-35

mia·2022년 11월 27일
0

Q31. 자바스크립트 자료형의 복잡도

빅 오란..?

무언가를 실행하는데 필요한 단계수를 나타내는 것, 즉 알고리즘에 필요한 단계 수를 나타내는 것이다.
O(1)과 O(n)의 의미 : ()안의 수는 자료구조의 길이만큼 걸리는 단계 수를 나타내는 것이다.
arr.slice()는 배열을 복사한다. 빈 값을 만들고 원래 값을 돌면서 push작업을 해준다.
arr.includes()는 처음 값부터 하나하나씩 다 찾으면서 값이 들어있는 지 확인한다.
따라서 둘은 O(n)이다.

Q32. 문자열 만들기

Q33. 거꾸로 출력하기

Q34. sort 구현하기

sort() : 배열 안의 원소를 정렬하는 함수이다.

arr.sort(compareFunction),
compareFunction은 정렬 순서를 정의하는 함수로 생략하면 배열의 element들은 문자열로 취급되어, 유니코드 값 순서대로 정렬된다.

<script>
<!--유니코드 값 순서대로 정렬-->
  const arr = [1, 2, 6, 10];
  console.log(arr.sort());
  // [1, 10, 2, 6] 
</script>

두개의 배열 element를 파라미터로 입력받았을 때,
이 함수가 리턴하는 값이 0보다 작을 경우, a가 b보다 앞에 오도록 정렬하고,
이 함수가 리턴하는 값이 0보다 클 경우, b가 a보다 앞에 오도록 정렬한다.
만약 0을 리턴하면, a와 b의 순서를 변경하지 않는다.

<script>
<!--숫자 크기 순서대로 정렬-->
  const arr = [2, 1, 3, 10];
  arr.sort((a, b) => {
  	if(a > b) return 1;
    if(a = b) return 0;
    if(a < b) return -1;
  });
  <!--or-->
  arr.sort((a, b) => {
  return a-b;
  })
  <!--오름차순-->
  arr.sort((a, b) => {
  return b-a;
  }) 
</script>

Q35. Factory 함수 사용하기

Factory 함수? Factory 패턴?

클래는 객체를 생성하기 위한 템플릿(서식)이다.
클래스는 ES6버전에서 추가된 문법으로, 이전에는 함수로 객체를 만들었다.

<script>
  function createMonster(name, hp, att, xp) {
  	return {name, hp, att, xp};
  }
  const monster1 = createMonster('슬라임', 25, 10, 11);
  const monster2 = createMonster('슬라임', 26, 10, 10);
  const monster3 = createMonster('슬라임', 25, 11, 10);
</script>

class가 나오기 전에는 위와 같은 객체를 return 하는 함수를 사용해 만들었는데, 공장처럼 객체를 찍어낸다고 해서 이를 factory 함수 또는 factory 패턴이라고 부른다.

생성자 함수?

this와 new라는 키워드를 사용하여 만든 함수

function Monster(name, hp, att, xp) {
  this.name = name;
  this.hp = hp;
  this.att = att;
  this.xp = xp;
}
const monster1 = new Monster (슬라임', 25, 10, 11)
const monster2 = new createMonster('슬라임', 26, 10, 10);
profile
노 포기 킾고잉

0개의 댓글