function solution(strings, n) {
return (
strings.sort((a,b) => {
if(a[n]==b[n]){
return (a>b)-(a<b);
} else {
return (a[n]>b[n])-(a[n]<b[n]);
}
})
)
}
function solution(strings, n) {
return(
strings.sort((a,b) => a[n]==b[n] ? a.localeCompare(b) : a[n].localeCompare(b[n]) )
)
}
def solution(strings, n):
return sorted(sorted(strings), key=lambda x : x[n])
return 값을 이용한 오름차순, 내림차순 정렬
const s = ["sun", "bed", "car"]
s.sort()
// ["bed", "car", "sun"] //정렬됨
s.sort((a,b) => a-b)
// ["sun", "bed", "car"] //변화없음
s.sort((a,b) => (a>b)-(a<b))
// ["bed", "car", "sun"] //정렬됨
s.sort((a,b) => a.localeCompare(b))
// ["bed", "car", "sun"] //정렬됨
MDN
localeCompare() 메서드는 기준 문자열과 비교했을 때 비교 대상 문자열이 정렬상 전에 오는지, 후에 오는지 혹은 같은 순서에 배치되는지를 알려주는 숫자를 리턴합니다.
return 값을 이용한 방법과 비교해보면 localeCompare()
의 실행시간이 더 길었음.
var items = ['réservé', 'premier', 'cliché', 'communiqué', 'café', 'adieu'];
items.sort((a, b) => a.localeCompare(b));
// ['adieu', 'café', 'cliché', 'communiqué', 'premier', 'réservé']
key 값을 기준으로 정렬
# 요소 길이 순으로 정렬하기
items = ['réservé', 'premier', 'cliché', 'communiqué', 'café', 'adieu']
# 오름차순
sorted(items, key=lambda x: len(x))
# ['café', 'adieu', 'cliché', 'réservé', 'premier', 'communiqué']
# 내림차순
sorted(items, key=lambda x: len(x), reverse=True)
# ['communiqué', 'réservé', 'premier', 'cliché', 'adieu', 'café']