=> .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 값을 비교해 나타낸다.
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' ]