티스토리 뷰
반응형
다양한 메서드를 활용하여, 배열에 담긴 문자열을 길이 순서로 정렬 후 오른쪽 정렬하여 출력해보자.
1
|
const strings = ['very very long string', 'creative', 'hello world'];
|
cs |
길이가 다양한 문자열이 담긴 배열이 있다. sort() 메서드를 사용하여 문자열 길이의 내림차순으로 정렬해준다. (sort()의 자세한 설명은 여기)
1
2
3
|
const strings = ['very very long string', 'creative', 'hello world'];
const sorted = strings.sort((a, b) => b.length - a.length);
// 내림차순 정렬 ['very very long string', 'hello world', 'creative']
|
cs |
map() 메서드를 사용하여 내림차순 정렬된 각 문자열의 길이를 배열로 출력한다.
1
2
3
4
5
|
const strings = ['very very long string', 'creative', 'hello world'];
const sorted = strings.sort((a, b) => b.length - a.length);
// 내림차순 정렬 ['very very long string', 'hello world', 'creative']
const stringLength = sorted.map(value => value.length); // [21, 11, 8]
|
cs |
우리는 가장 긴 문자열 길이인 21만 필요하기 때문에 아래와 같이 추출한다.
1
2
3
4
5
6
|
const strings = ['very very long string', 'creative', 'hello world'];
const sorted = strings.sort((a, b) => b.length - a.length);
// 내림차순 정렬 ['very very long string', 'hello world', 'creative']
const stringLength = sorted.map(value => value.length); // [21, 11, 8]
const longestLength = stringLength[0]; // 21
|
cs |
forEach()를 사용하여 sorted 배열을 순회하고, 가장 긴 문자열 길이만큼 padStart()를 준다. 그러면 가장 긴 문자열에 맞춰서 오른쪽 정렬이 된다.
padStart(지정한 값 - 해당 문자열의 길이) |
1
2
3
4
5
6
7
8
9
10
11
|
const strings = ['very very long string', 'creative', 'hello world'];
const sorted = strings.sort((a, b) => b.length - a.length);
// 내림차순 정렬 ['very very long string', 'hello world', 'creative']
const stringLength = sorted.map(value => value.length); // [21, 11, 8]
const longestLength = stringLength[0]; // 21
sorted.forEach(value => console.log(value.padStart(longestLength)));
// very very long string
// hello world
// creative
|
cs |
코드를 간략하게 정리하면 아래와 같다.
1
2
3
4
5
6
7
8
|
const strings = ['very very long string', 'creative', 'hello world'];
const sorted = strings.sort((a, b) => b.length - a.length);
const longestLength = sorted.map(value => value.length)[0]; // 21
sorted.forEach(value => console.log(value.padStart(longestLength)));
// very very long string
// hello world
// creative
|
cs |
반응형
'JavaScript' 카테고리의 다른 글
[Javascript - ES6] Promise()로 이미지 로딩 성공/실패 체크하기 (0) | 2021.12.08 |
---|---|
[Javascript] 특정 문자열 제거 - 하나만 제거, 모두 제거 (0) | 2021.12.01 |
[Javascript] arguments의 개념과 활용 (1) | 2021.10.28 |
[Javascript] 프로토타입 방식 클래스와 ES6 class 비교 (0) | 2021.10.27 |
[Javascript] Set()과 WeakSet()의 차이 (0) | 2021.10.25 |