본문 바로가기

JavaScript/JavaScript

[JavaScript] 배열(Array) 이란?

  • 배열은 자료들을 담는 자료구조 중의 하나이다.
  • 배열에는 다양한 자료형을 섞어서 담을 수 있지만, 이런식으로는 사용하지는 않는다.
  • 배열에는 주로 동일한 자료형을 나열해서 사용한다.
  • 배열은 객체(Object)와 달리 순서가 있는 자료구조이다.
  • 배열의 길이는 언제든지 늘어나거나 줄어들 수 있다.
  • 배열은 자바스크립트의 일곱가지 원시 자료형에 해당하지 않는다.
  • 원시 자료형이 아닌 객체형에 속하기 때문에 객체처럼 동작한다.

let arr = new Array(); // 빈배열 선언 방법1
let arr = [];          // 빈배열 선언 방법2
  • 배열(Array)선언 방법으로는 2가지가 있다.
  • 첫번째 방법 보다는 두번째 방법으로 선언을 주로 사용한다.
let fruits = ["사과", "바나나", "수박"];
  • 위와 같이 대괄호 안에 초기 요소들을 넣어서 선언도 가능하다.
let fruits = ["사과", "바나나", "수박"];

console.log(fruits[0]); // "사과"
console.log(fruits[1]); // "바나나"
console.log(fruits[2]); // "수박"
  • 각 요소는 0부터 시작하는 인덱스가 매겨져 있다.
  • 이 숫자들은 배열 내 순서를 나타내며, 특정 요소만 얻고 싶다면 대괄호 안에 인덱스를 넣어 얻을 수 있다.
let fruits = ["사과", "바나나", "수박"];

console.log(fruits[0]); // "사과"

fruits[0] = "망고"; // ["망고", "바나나", "수박"];

console.log(fruits[0]) // "망고"
  • 위와 같은 방법으로 기존의 요소를 새로운 요소로 수정이 가능하다.

  • 배열에는 큐(queue)와 스택(stack)이라는 두가지 자료구조가 존재한다.
// 큐(queue) 자료 구조

let fruits = ["사과", "바나나", "수박"];

fruits.push("포도");

console.log(fruits); // ["사과", "바나나", "수박", "포도"]

fruits.shift();

console.log(fruits); // ["바나나", "수박", "포도"]
  • 큐(queue)는 선입선출(First-In-First-Out, FIFO) 자료구조라 불린다.
  • 편의점에 상품을 진열 하는 업무와 같은 경우 사용하기에 적합하다.
  • 주요 연산은 push, shift가 있다.
  • push는 배열 맨 끝에 요소를 추가한다.
  • shift는 배열 제일 앞 요소를 꺼내 제거한 후 남아 있는 요소들의 순서를 앞으로 밀어준다.
  • shift는 배열 순서를 앞으로 밀어주는 작업이 있기에 데이터양이 방대한 경우에는 상당히 느린 편이다.

 

let fruits = ["사과", "바나나", "수박"];
    
fruits.push("오렌지");

console.log(fruits); // ["사과", "바나나", "수박", "오렌지"]

fruits.pop();

console.log(fruits); // ["사과", "바나나", "수박"]
  • 스택(stack)은 후입선출(Last-In-First-Out, LIFO) 자료 구조라 불린다.
  • pop은 shift와 다르게 맨 뒤의 요소를 제거 하는 방식이어서 데이터의 양과 상관없이 빠른 편이다.
let fruits = ["사과", "바나나", "수박"];

fruits.unshift("딸기");

console.log(fruits); // ["딸기", 사과", "바나나", "수박"]
  • unshift를 사용하면 배열 가장 앞에 요소를 추가 할 수 있다.
  • 이 또한 각 요소를 뒤로 밀어주는 작업이 있기에 데이터양이 방대한 경우에는 상당히 느린 편이다.

let numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];

console.log(numbers); // [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

// numbers.splice(1, 3); // 인덱스 1부터 3개 삭제
// console.log(numbers); // [1, 5, 6, 7, 8, 9, 10]

// numbers.splice(3); // 인덱스 3부터 뒤로 전부 삭제
// console.log(numbers); // [1, 2, 3]
    
// numbers.splice(1, 1, 11, 22); // 인덱스 1부터 1개의 요소를 삭제하고 그자리에 11, 22 추가
// console.log(numbers); // [1, 11, 22, 3, 4, 5, 6, 7, 8, 9, 10]
  • splice()를 이용하면 배열에서 원하는 인덱스의 값을 삭제하거나 삭제하고 추가할 수 있다.

'JavaScript > JavaScript' 카테고리의 다른 글

[JavaScript] null / undefined 란  (0) 2022.01.04
[JavaScript] 셋(Set) 이란?  (0) 2021.12.31
[JavaScript] 맵(Map) 이란?  (0) 2021.12.31
[JavaScript] 반복문을 알아보자  (0) 2021.10.20
[JavaScript] 객체( key : value )란?  (0) 2021.10.14