자바스크립트 문자열 관련 정리

ggomadev·2022년 3월 3일
0

Today I Learned

목록 보기
11/15
post-thumbnail

문자열을 배열 형태로 바꿀 때

=> .split( )

const word = 'apple'
word.split('') // ['a','p','p','l','e']

배열의 요소를 하나의 문자열로 만들 때

=> .join( )
매개변수 자리에 구분자를 넣지 않으면 배열의 요소들이 쉼표로 구분되고, 구분자가 빈 문자열이면 요소들 사이에 어떠한 문자 없이 연결된다.

const animals = ['rabbit', 'gorilla' , 'lion', 'bear']
animals.join() // 'rabbit,gorilla,lion,bear'
animals.join('') // 'rabbitgorillalionbear'
animals.join(' ') // 'rabbit gorilla lion bear'
animals.join(' & ') // 'rabbit & gorilla & lion & bear'

문자열 정렬

=> .sort( ) : parameter가 없으면 유니코드 순서대로 정렬된다. 문제에서 array 안의 요소들이 모두 대문자이거나 모두 소문자일 때 sort()를 사용할 수 있다. 따라서 대소문자를 통일해야한다.
toUpperCase( ), toLowerCase( ) 사용

다음은 배열 안 요소 중 하나의 첫번째 문자가 대문자와 소문자라는 차이에 의해 다른 결과가 나타나는 것을 보여주는 예시이다. ( 'ron', 'Ron' )

const wizards = ['harry','ron','hermione']
wizards.sort() // [ 'harry', 'hermione', 'ron' ]

const wizards2 = ['harry','Ron','hermione']
wizards2.sort() // [ 'Ron', 'harry', 'hermione' ]

내림차순으로 정렬할 때에는 동등연산자와 비교연산자를 활용하여 정렬할 수 있다. 문자열의 순서를 비교할 때에는 문자열의 ASCII 값을 비교해 나타낸다.

  • 알파벳 대문자 (A - Z) : 65 - 90
  • 알파벳 소문자 (a - z) : 97 - 122

wizards2를 오름차순으로 정렬하고 싶다면 아래와 같이 나타낼 수 있다.

const wizards2 = ['harry','Ron','hermione']
wizards2.sort((a,b)=>{
  if(a.toUpperCase() > b.toUpperCase()) return 1
  else if(a.toUpperCase() <  b.toUpperCase()) return -1
  else return 0
}) // [ 'harry', 'hermione', 'Ron' ]

내림차순으로 정렬할 때에는 비교연산자를 반대로 바꾸어주면 된다.

wizards2.sort((a,b)=>{
  if(a.toUpperCase() <  b.toUpperCase()) return 1
  else if(a.toUpperCase() > b.toUpperCase()) return -1
  else return 0
}) //[ 'Ron', 'hermione', 'harry' ]

0개의 댓글