JS => 배열 (slice / join)

CHO_velog·2021년 6월 29일
0

slice

어떤 배열의 시작부터 끝까지(마지막 인덱스 미포함) 새로운 배열 객체로 반환하는 메소드.

const myNumber = [7, 13, 15, 30, 45];
console.log(myNumber.slice(0, 2)) // [7, 13]
<br>
const animals = 'ant', 'bison', 'camel', 'duck', 'elephant'];
console.log(animals.slice(2, 4)) // ["camel", "duck"]
console.log(animals.slice(2) // ["camel", "duck", "elephant"]

join

배열의 모든 요소를 연결해 하나의 문자열로 만드는 메소드.

const myNumber = [7, 13, 15, 30, 45];
console.log(myNumber.join()) // "7,13,15,30,45"
console.log(myNumber.join('')) // "713153045"
console.log(myNumber.join('-')) // "7-13-15-30-45"

예시 문제
Q. 0-9 사이의 정수를 요소로 갖는 배열을 입력받아 전화번호 형식의 문자열을 리턴하시오.
인자: arr
ㆍnumber 타입을 요소로 갖는 배열
ㆍarr[i]는 0 이상 9 이하의 정수
ㆍ배열의 길이는 8 또는 11
ㆍ반복문 사용 금지
ㆍ배열의 길이가 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'

function createPhoneNumber(arr) {
  let start = '(010)'; // 앞번호 선언 및 할당
  let middle = arr.slice(arr.length-8, arr.length-4).join('') // 중간번호 선언 및 할당
  let tail = arr.slice(arr.length-4).join('') // 끝번호 선언 및 할당
<br>
  if(arr.length === 11) { // 배열의 길이가 11인 경우 start를 재할당
    start = `(${arr.slice(0, 3).join('')})`
  } 
  return `${start}${middle}-${tail}`
}

profile
개발신생아

0개의 댓글