[Study/JavaScript] 배열, 다차원 배열

SoShy·2023년 11월 30일

JavaScript_Study

목록 보기
12/36
post-thumbnail

🥕 배열 (Array)

  • 요소 (element): 배열 안에 있는 값

  • 대괄호 안의 각 요소별로 순서를 알려주는 숫자(index)가 매겨짐.

  • indexproperty name의 역할을 함 (index == property name)

let courseRanking = [
  '자바스크립트 프로그래밍 기초',
  'Git으로 배우는 버전 관리',
  '컴퓨터 개론',
  '파이썬 프로그래밍 기초'
]
let airportLines = ['인천공항 2터미널', '인천공항 1터미널', '검암', '계양']

1. Indexing

  • index를 통해서 요소에 접근하는 것 (0부터 시작)

기본 구조

console.log(배열이름[index])

예시

let courseRanking = [
  '자바스크립트 프로그래밍 기초',
  'Git으로 배우는 버전 관리',
  '컴퓨터 개론',
  '파이썬 프로그래밍 기초'
]

console.log(courseRanking[0]);
.
.
.
>>> 자바스크립트 프로그래밍 기초
let courseRanking = [
  '자바스크립트 프로그래밍 기초',
  'Git으로 배우는 버전 관리',
  '컴퓨터 개론',
  '파이썬 프로그래밍 기초'
]

console.log(courseRanking[2 + 1]);
.
.
.
>>> 파이썬 프로그래밍 기초

  • 존재하지 않는 배열에 접근하려고 하면 undefined 출력
let courseRanking = [
  '자바스크립트 프로그래밍 기초',
  'Git으로 배우는 버전 관리',
  '컴퓨터 개론',
  '파이썬 프로그래밍 기초'
]

console.log(courseRanking[5]);
.
.
.
>>> undefined

2. 배열 다루기

1) 자료형 확인

let members = ['드워프', '렉스', '롭이어']

console.log(typeof members);
.
.
.
>>> object

2) length

  • 배열이 가지고 있는 요소의 총 개수 표시
  • 점 표기법, 대괄호 표기법 모두 사용 가능
let members = ['드워프', '렉스', '롭이어']

console.log(members.length);
console.log(members['length']);

console.log(members.length - 1);	// 배열의 마지막 요소에 접근
.
.
.
>>> 3
	3
	롭이어

3) 요소 추가 및 수정

  • index 순서를 뛰어넘으면서 추가하면 undefined 값이 들어간 요소 자동 생성되니 주의
let members = ['드워프', '렉스', '롭이어']

members[3] = '당근'
console.log(members[3]);
.
.
.
>>> 당근

4) 요소 삭제

  • 아래처럼 하면 제대로 삭제가 안되기때문에, splice method 사용해야 함.
let members = ['드워프', '렉스', '롭이어']

console.log(members);

delete members[1];
console.log(members);
.
.
.
>>> [ '드워프', '렉스', '롭이어' ]
	[ '드워프', <1 empty item>, '롭이어' ]

3. splice method

  • splice() 괄호 안에 숫자 하나만 입력하면, 해당 index를 포함한 이후 모든 index를 삭제
let members = ['드워프', '렉스', '롭이어']

members.splice(1);
console.log(members);
.
.
.
>>> [ '드워프' ]
let members = ['드워프', '렉스', '롭이어']

console.log(members.splice(1));
.
.
.
>>> [ '렉스', '롭이어' ]

  • splice( , ) 에서 두 번째 parameter가 삭제할 요소 개수
let members = ['드워프', '렉스', '롭이어']

members.splice(1, 2);
console.log(members);
.
.
.
>>> [ '드워프' ]
let members = ['드워프', '렉스', '롭이어', '당근']

console.log(members.splice(1, 2));
.
.
.
>>> [ '렉스', '롭이어' ]

  • 삭제한 요소 자리에 다른 요소 추가 가능
let members = ['드워프', '렉스', '롭이어', '당근']

members.splice(1, 1, '미나리');
console.log(members);
.
.
.
>>> [ '드워프', '미나리', '롭이어', '당근' ]
let members = ['드워프', '렉스', '롭이어', '당근']

members.splice(1, 1, '미나리', '쑥갓');
console.log(members);
.
.
.
>>> [ '드워프', '미나리', '쑥갓', '롭이어', '당근' ]

  • 삭제할 요소 개수를 0으로 설정하면, 요소 추가 가능
let members = ['드워프', '렉스', '롭이어', '당근']

members.splice(1, 0, '미나리');
console.log(members);
.
.
.
>>> [ '드워프', '미나리', '렉스', '롭이어', '당근' ]

4. 추가 method

  • shift(): 배열의 첫 요소 삭제
let members = ['드워프', '렉스', '롭이어', '당근']

members.shift();
console.log(members);
.
.
.
>>> [ '렉스', '롭이어', '당근' ]

  • pop(): 배열의 마지막 요소 삭제
let members = ['드워프', '렉스', '롭이어', '당근']

members.pop();
console.log(members);
.
.
.
>>> [ '드워프', '렉스', '롭이어' ]

  • unshift(value): 배열의 첫 요소 추가
let members = ['드워프', '렉스', '롭이어', '당근']

members.unshift('soshy');
console.log(members);
.
.
.
>>> [ 'soshy', '드워프', '렉스', '롭이어' ]

  • push(value): 배열의 마지막 요소 추가
let members = ['드워프', '렉스', '롭이어', '당근']

members.push('shyboy');
console.log(members);
.
.
.
>>> [ '드워프', '렉스', '롭이어', 'shyboy' ]

  • indexOf(value): 배열에서 특정 값 찾기
    - value가 배열에 포함되어 있다면, value가 있는 index return
    - value가 배열에 포함되어 있지 않다면, -1 return
    - value가 배열에 여러 번 포함되어 있으면, 처음 발견된 index return
let brands = ['Google', 'Kakao', 'Naver', 'Kakao'];

console.log(brands.indexOf('Kakao'));
console.log(brands.indexOf('Daum'));
.
.
.
>>> 1
	-1

  • lastIndexOf(value): 배열에서 특정 값 찾기
    - indexOf(value)와 같지만, 탐색 순서가 반대 (뒤에서부터 탐색)
let brands = ['Google', 'Kakao', 'Naver', 'Kakao'];

console.log(brands.lastIndexOf('Kakao'));
console.log(brands.lastIndexOf('Daum'));
.
.
.
>>> 3
	-1

  • includes(value): 배열에 특정 값이 있는지 확인
    - 배열에 value가 있을 경우, true return
    - 배열에 value가 없을 경우, false return
let brands = ['Google', 'Kakao', 'Naver', 'Kakao'];

console.log(brands.includes('Kakao'));
console.log(brands.includes('Daum'));
.
.
.
>>> true
	false

  • reverse(value): 배열 뒤집기
let brands = ['Google', 'Kakao', 'Naver', 'Kakao'];
console.log(brands);

brands.reverse();
console.log(brands);
.
.
.
>>> (4) ["Google", "Kakao", "Naver", "Kakao"]
	(4) ["Kakao", "Naver", "Kakao", "Google"]


🥕 다차원 배열

  • 배열 내에 배열이 들어가는 구조

  • 여러 값들의 의미가 중요하다면, 배열보다는 property를 활용할 수 있는 객체를 만드는 게 더 효과적
  • 각 값들의 의미보다는, 여러 가지 값에 대한 순서위치에 중점을 두는 정보다 필요하다면, 다차원 배열이 효과적
let twoDimensional = [[1, 2], [3, 4]];

console.log(twoDimensional[0])
console.log(twoDimensional[0][1])
.
.
.
>>> [ 1, 2 ]
	2
profile
프론트엔드 개발자가 되기 위해 노력 중인 새싹🌱 입니다.

0개의 댓글