[코드잇 스프린트 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 배열)임

0개의 댓글