Javascript

JS 배열과 객체

SeanK 2021. 10. 16. 22:28

 

 

 

 

 

 

오늘은 대량의 데이터를 다룰 때 유용하게 쓰이는 배열과 객체에 대해 알아보자.

배열과 객체는 Boolean 혹은 String 등과 같이 별도의 자료형으로 취급하는데, 정확히는 참조 타입[Reference Type]이라고 한다. 

 

 

 

 

 

1. 배열

  • 배열은 순서를 의미하는 인덱스와 각 인덱스별로 값을 지니는 요소(Element)로 구성된다.

 

문법

let '배열명' = [ element0, element1, element2, ~ ];

 

값접근식

'배열명'[접근하고자 하는 요소의 인덱스 값];

 

배열을 활용한 속성 / 메소드

  • '배열명'.length; >> 배열의 길이 반환 (인덱스+1)
  • '배열명'.push('추가하고자하는 요소의 값'); >> 요소를 맨마지막 인덱스로 추가
  • '배열명'.unshift('추가하고자하는 요소의 값'); >> 요소를 맨 첫번째 인덱스로 추가
  • '배열명'.pop(); >> 배열 마지막 값 삭제
  • '배열명'.shift(); >> 배열 첫번째 값 삭제
  • '배열명'.filter(함수); >> 함수 조건에 맞는 밸류만 추출 
  • '배열1'.concat('배열2'); >> 배열 합치기
  • let 변수명 = [...'배열1',...'배열2']; >> 배열 합치기
  • console.table('배열명'); >> 배열을 더욱 시각적으로 표현해 출력

 

배열과 객체 구분법

Array.isArry('배열명')

 

배열과 객체는 흔히 쓰는 typeof 명령문으로는 구별을 할 수 없다. 왜냐하면 둘 다 Object(객체)로 분류되기 때문이다. 

따라서 배열과 객체를 구분하기 위해서는 Array.isArray를 통해 true가 나오면 배열, false가 나오면 배열 이외의 자료형임을 이용한다.

 

배열내 요소 검색법

'배열명'.indexOf('찾고자하는 요소의 값')

 

indexOf를 이용하면 배열안에 요소의 인덱스값을 얻을 수 있다. 

만약 없는 요소값을 찾는다면 -1을 반환한다.

 

'배열명'.includes('찾고자하는 요소의 값')

 

includes를 이용하면 배열안에 요소가 있다면 true, 없다면 false를 반환한다. 

 

 

 

 

 

2. 객체

  • 객체는 키와 값으로 이루어져 있다. 즉 배열에서는 키값이 인덱스였다면 객체에서는 키값을 사용자가 정할 수 있다는 특징이 있다.

 

문법

let '객체명' = {A : 'a', B : 'b', C : 'c'};

 

값접근식

방법1: Dot notation >> '객체명'.'Key값';

방법2: Bracket notation >> '객체명'[" 'Key값' "];

 

객체의 값접근 방법은 위와같이 두가지 방법이 있다. 그렇다면 왜 두가지 방법으로 값접근이 가능하도록 했을까?

Bracket Notation은 key값을 변수로 지정해서 사용할 때 유용하다. 예를들어, 아래와 같은 사용법이 가능하다.

Dot Notation의 경우 변수를 담을 수 없다!

 

let A = 'contents';

let Obj = {contents: 'a'};

 

Obj[A] // a값이 반환된다.

 

 

객체 추가/삭제/수정

참조:

https://javascript.plainenglish.io/add-modify-and-delete-properties-from-javascript-object-7ad07e7be1bb

 

추가

1. Dot notation

'객체명'.'추가하고픈 키값' = '요소값';

2. Bracket notation

'객체명'[" '추가하고픈 키값' "] = '요소값';

 

삭제

delete '객체명'.'삭제하고픈 키값';

 

 

객체을 활용한 속성 / 메소드

  • '찾고자 하는 키값' in '탐색 대상 객체'; >> 키값이 있다면 true, 없다면 false
  • let '변수명' = {... '객체1', ... '객체2'}; >> 객체 합치기
  • let '변수명' = Object.assign('객체1', '객체2'); >> 객체 합치기
  • let '변수명' = Object.assign('객체1', '객체2'); >> 객체 합치기
  • let '변수명' = Object.entries('객체'); >> 객체를 배열로 변경
  • let '변수명' = Object.fromEntries('배열'); >> 배열을 객체로 변경
  • '키값' in '객체' >> 객체안에 해당하는 키값이 있는지 확인하고 boolean값으로 반환