[코드잇 스프린트 3기] Pre-course - 배열

YUYONI·2023년 10월 26일
0
post-thumbnail

객체에서 굳이 프로퍼티 네임이 필요없거나 랭킹처럼 순서가 있는 값들의 묶음, 혹은 순서가 상관없는 묶음의 경우 배열을 사용하면 객체보다 훨씬 간단.

Array

let greetings = [
  '안녕하세요',
  'Hello',
  '니하오'];

배열은 0번 index 부터 시작해 요소(element)들이 나열되어있는 구조.

대괄호안에 index를 입력해서 요소 사용 가능 greetings[0] // '안녕하세요'

Array 다루기

배열의 자료형을 typeof로 확인해보면 object라고 뜸. 배열도 하나의 객체인 것! 따라서 내장된 다양한 프로퍼티와 여러 메소드들을 사용할 수 있음!

- 값 할당, 수정, 삭제

대괄호법을 이용해 값을 수정하고 추가할 수 있음

let arr = ['1','2','3','4'];

arr[5] = '5'; // [ '1', '2', '3', '4', <1 empty item>, '5' ]
// index 4를 뛰어넘고 추가했기 때문에 index 4의 값이 empty(undefined값임)

delete arr[5]; // [ '1', '2', '3', '4', empty, empty ]

이 때 delete의 경우 자리 자체가 삭제되는 게 아니라 값만 사라져서 empty로 남아있게 됨 => delete 안쓰고 splice를 씀!

- length

arr.length와 같이 배열의 길이를 알 수 있는 프로퍼티를 점 표기법으로 사용가능.

- splice(startIndex, deleteCount, item)

splice 메소드를 이용해 삭제할 수 있는데 필수 파라미터로 삭제할 시작 인덱스를 받고 옵션으로 삭제할 갯수와 대체할 값을 받음(안하면 그냥 끝까지 삭제됨)

startIndex - 삭제할 시작 인덱스
deleteCount(옵션) - 삭제할 갯수
item(옵션) - 인덱스 자리에 들어갈 값

let arr = ['1','2','3','4'];

arr.splice(2,3) // ['1', '2']
arr.splice(1) // ['1']

let arr = ['1','2','3','4','5'];
arr.splice(1, 1, '6','7') // ['1','6','7','4','5'];
arr.splice(3, 0, '8','9') // ['1','6','7','4','8','9','5'];

=> splice를 이용해서 추가, 수정, 삭제 다 가능함!!

- shift() - 배열의 첫 요소를 삭제

- pop() - 배열의 마지막 요소를 삭제

- unshift(value) - 배열의 첫 요소로 값 추가

- push(value) - 배열의 마지막 요소로 값 추가


- indexOf(item) - item의 index알려줌

만약 item이 arr에 없다면 -1 반환, 여러개 있다면 최초 index만 알려줌

- lastIndexOf(item) - 뒤에서 부터 탐색해서 item index알려줌

그래서 여러개 있는 경우 마지막 index만 알려줌

- includes(item) - item이 있는지 없는지 boolean으로 반환

- reverse() - 순서 뒤집기

배열을 다루는 for.. of 문

배열의 요소를 반복하기 위해 for of문을 사용 (파이썬의 for in문과 비슷)
객체에서 사용하는 for in문과 다른 점은 for(프로퍼티네임 in 객체)고 for of문은 for(변수 of 배열)임

profile
기본기와 원리, 개념 철처하게 다지기!

0개의 댓글