본문 바로가기
Coding/Javascript

Javascript - 배열 메소드(method)(3)

by z쿳쿳z 2020. 5. 16.
728x90
반응형

배열 메소드(method)(1)에는 배열에 element를 추가 / 삭제하는 기능을 가진 메소들이며 mutable 한 메소드들 이였다.

배열 메소드(method)(2)에는 배열에 element를 합치고 / 복사하는 기능을 가진 메소들이며 immutable 한 메소들 이였다.(배열 메소드(method)(1), 배열 메소드(method)(2)에 이전 글 링크 걸어 두었습니다. 클릭하시면 보실 수 있습니다.)(tistory에 장점이네요 html로 조작함)

 

배열 element 찾기 / element 정렬 방법

 -Array.indexOf(searchValue)<immutable> ==> 배열 element 찾기 기능

  *소괄호 () 안에 찾고자 하는 element를 넣으면 된다.

  *return 값은 index!! 찾고자 하는 값이 없으면 -1을 반환!

  *str1.indexOf("Hello");를 하면 str1에 있는 "Hello"의 index값을 반환한다.

 

 -Array.includes(searchValue)<immutable> ==> 배열 element 찾기 기능

  *소괄호 () 안에 찾고자 하는 element를 넣으면 된다.

  *indexOf 메소드와 비슷한 기능을 갖지만 return 값이 다르다

  *return 값은 Boolean으로 true 와 false 값을 반환!!

  *주의할점은 includes 메소드는 explorer에서는 지원을 하지 않는 메소드 이다.

  *str1.includes("Hello") 했을 때,  str1에 있기 때문에 true를 반환!

 

 

 -Array.sort()<mutable> ==> 배열 element를 순차적으로 정렬 해준다(작은것부터 큰것 순으로)

 -Array.reverse()<mutable> ==> 배열 element를 역순차적으로 정렬 해준다(큰것부터 작은 순으로)

  *두 메소드 인자를 받지 않고 작동을 한다.

  *return 값은 정렬된 후의 배열 값을 반환

  *num2를 메소드 적용 후, num2의 배열 순서가 반대로 되는 것을 확인

  *num2를 sort 메소드를 했을 때, 순차적으로 정렬 되고, reverse를 했을 때, 역순차적으로 정렬된다.

  *순차적 / 역순차 적으로 정렬 되어 보이나, 12 < 112 크고, 112<211 보다 작기 때문에 211 앞에 위치해야 한다.

  *즉, sort와 reverse는 자릿수에 있는 숫자들까지 순차적으로 정렬한다(말로 설명하기 어려움 ㄷㄷ...)

  *이것을 보안 하기 위해 정렬하는 방식을 함수로 정의 해주면 이와 같은 오점을 보완 할 수 있다.

[추가내용](어려운 내용이다. 이해를 못하면 나중에 다시 봐도 상관없다. 필자도 아직 잘 모르는 내용이기도 함)

(Array.sort(); 기준으로 설명)(코드블럭 삽입 기능을 인제 알게 되었음 ㅎㅎ)

Array.sort(function(a, b){
   return a - b;
   });

console에 적용하여 확인 해보면 다음과 같다.

 

코드설명

  *Array.sort(함수)의 형태인데, num2.sort(함수)를 실행하면, 함수가 실행이 된다. (이전 함수(여기도 함수 글 태그) 참조) 즉, sort()라는 내장 함수가 실행 되는데 인자로 또 함수를 받는다.(알기론 sort(callback 함수)로 알고 있다.) callback 함수가 실행되어서 a와 b는 num2의 element가 들어가게 된다.( 1 - 21 = -20 / 1 - 12 = -11 / 21 - 12 = 9) 이런식으로 함수가 실행이 된다. 이렇게 되었을 때, a-b 결과에 따라서 0 보다 크면 true, 0이거나 0보다 작으면 false로 반환 하기 때문에 함수가 실행 되지 않는다. 함수가 실행되면 앞쪽으로 실행되지 않으면 다음 수와 비교 작업을 컴퓨터가 진행을 한다. (추가적으로 MDN 자료 링크)

이와 같은 방식으로 숫자의 크기대로 순차적으로 정렬을 할 수 있게 된다..

 

  *참고 - Array.sort(함수) 여기에서 함수(sort 뒤에 있는 소괄호 안에 있는)를 익명의 함수라고 한다. 기존은 function 함수명(인자){코드 return } 형식을 가지면서 함수명을 가지고 있지만, 익명의 함수는 함수의 이름없이 단발적으로 실행이 되는 특징을 가지고 있다.

 

#javascript#생활코딩#CCL라이선스BY#codestates#array#메소드#method#sort()#reverse()#indexOf#includes

728x90
반응형