TIL_210417

오늘 배운 것

  • sort()
  • parseFloat()
  • parseInt()

sort()

이걸 왜 이제야 찾아봤나 싶다. 공부 참 띄엄띄엄 했네
아무튼 자바스크립트 배열의 내장 함수에 sort()가 있다. 이름에서 예상할 수 있듯, 요소들을 정렬한다.

문자의 경우

let string = ['three', 'one', 'eleven']
string.sort(); // 'one', 'three', 'eleven'

일반적인 방법으로 사용하면 글자 수에 따라 정렬된다.

숫자의 경우

let number = [4, 11, 2, 10, 3, 1]
number.sort(); // 1, 10, 11, 2, 3, 4

아스키 문자 순서로 정렬되기 때문에 우리가 생각하는 대로 정렬되지 않는다. 자바스크립트는 역시 근본이 없다

// 오름차순 정렬
number.sort(function(a, b){
  return a - b;
}) // 1, 2, 3, 4, 10, 11

// 내림차순 정렬
number.sort(function(a, b){
  return b - a;
}) // 11, 10, 4, 3, 2, 1

다음 ES에는 직접 함수 안 써도 되게 바뀌었으면 ...

parseFloat()

규칙

  • 수로 시작할 때 그 수를 실수로 바꾼다
  • 띄어 쓰기로 여러 개의 수가 있으면 첫번째 수만 바꾼다
  • 공백으로 시작하면 공백은 무시한다
  • 수가 아닌 문자로 시작하면 NaN을 반환한다

예시

parseFloat( '12.34' )       // 12.34 (일반적인 경우)
parseFloat( ' 12.34' )      // 12.34 (앞에 공백이 있으면 씹는다)
parseFloat( '12.34 56.78' ) // 12.34 (여러 수가 있으면 첫번째만 바꾼다)
parseFloat( 'A 12.34' )     // NaN (문자로 시작하면 일을 안한다)

parseInt()

parseFloat()와의 차이점

parseFloat()는 문자열을 실수로 바꾸는 역할이고
parseInt()는 문자열을 정수로 바꾸는 역할이다

규칙

parseInt( string, n )

  • string을 n진법일 때의 값으로 바꾼다
  • n(진법)은 옵션으로 2부터 36까지 입력할 수 있다. 입력하지 않으면 10으로 처리된다
  • string의 처리는 parseFloat()와 유사하다
  • 소수 부분은 버린다
  • 0x로 시작하면 16진법으로 처리한다

무언가 비슷하다?

십진법으로 사용하게 되면 Math.floor()와 역할이 동일하다 (소수점 이하를 버리고 정수만 얻음)

좋은 웹페이지 즐겨찾기