join()이란?
배열의 모든 요소를 연결해 하나의 문자열로 만드는 것
arr.join([separator])
매개변수로 separator는 배열의 각 요소를 구분할 문자열을 지정할 수 있습니다. separator는 생략할 수 있고 생략하게 된다면 배열의 요소들이 쉼표로 구분됩니다. separator가 빈 문자열이면 모든 요소들 사이에 아무 문자도 없이 연결됩니다.
반환값으로는 배열의 모든 요소들을 연결한 하나의 문자열을 반환합니다. 만약 arr.length 가 0이라면, 빈 문자열을 반환합니다.
그럼 예시를 보면서 join의 사용법에 대해 익혀봅시다 !
var a = ['바람', '비', '불'];
var myVar1 = a.join(); // myVar1에 '바람,비,불'을 대입
var myVar2 = a.join(', '); // myVar2에 '바람, 비, 불'을 대입
var myVar3 = a.join(' + '); // myVar3에 '바람 + 비 + 불'을 대입
var myVar4 = a.join(''); // myVar4에 '바람비불'을 대입
위의 예시 처럼 구분자에 아무것도 사용하지 않으면 자동적으로 , 로 구분해주고 빈 문자열을 사용한다면 요소들을 다 연결하여 반환해줍니다.
그러면 join()을 활용한 문제를 하나 풀어봅시다!
createPhoneNumber
문제
0-9 사이의 정수를 요소로 갖는 배열을 입력받아 전화번호 형식의 문자열을 리턴해야 합니다.
입력
인자 1 : arr
- number 타입을 요소로 갖는 배열
- arr[i]는 0 이상 9 이하의 정수
- 배열의 길이는 8 또는 11
출력
- string 타입을 리턴해야 합니다.
주의 사항
- 반복문(for, while) 사용은 금지됩니다.
- 배열의 길이가 8인 경우, 앞에 [0, 1, 0]이 있다고 가정합니다.
입출력 예시
let output = createPhoneNumber([0, 1, 0, 1, 2, 3, 4, 5, 6, 7, 8]);
console.log(output); // --> '(010)1234-5678'
output = createPhoneNumber([8, 7, 6, 5, 4, 3, 2, 1]);
console.log(output); // --> '(010)8765-4321'
output = createPhoneNumber([0, 1, 1, 4, 3, 2, 1, 8, 7, 6, 5]);
console.log(output); // --> '(011)4321-8765'
풀이
function createPhoneNumber(arr) {
let head = '(010)';
const len = arr.length;
const body = arr.slice(len - 8, len - 4).join('');
const tail = arr.slice(len - 4, len).join('');
if (len === 11) {
head = `(${arr.slice(0, 3).join('')})`;
}
return `${head}${body}-${tail}`;
}
slice를 통해 4자리 마다 빈 문자열을 구분자로 사용하여 연결해주어 변수에 넣어주었습니다 !
오늘은 배열의 속성중 join에 대해 알아보았습니다. join은 많이 쓰이니 알아두는 것이 좋겠습니다 !
오늘도 열공 !
'HTML-CSS-JavaScript > JavaScript' 카테고리의 다른 글
[javascript] Scope에 대해 (2) | 2023.03.02 |
---|---|
[javascript] 원시 자료형과 참조 자료형 , 얕은 복사와 깊은 복사 (0) | 2023.03.02 |
[javascript] 배열 slice() 사용하기 (0) | 2023.02.27 |
[javascript] for of 문이란 ? (0) | 2023.02.27 |
[javascript] 자바스크립트 타입 찾기 (0) | 2023.02.27 |