객체와 달리 배열은 새로운 Property(값)를 기존 Property(값) 사이에 끼워넣기가 가능합니다.

배열은 순서가 있는 자료를 저장하고 관리하는 용도에 최적화된 자료구조입니다.

배열 선언

let arr = new Array();
let arr = []; // 대부분 이걸 사용합니다.
```![](https://velog.velcdn.com/images%2Fcptkuk91%2Fpost%2F04c4b602-7aa8-4c6f-b0d7-fac82fedf0ca%2Fclout.jpeg)

대부분 대괄호 배열을 사용합니다.

ex)

let fruits = ["사과", "오렌지", "자두"];
console.log(fruits[0]); // 사과
console.log(fruits[1]); // 오렌지
console.log(fruits[2]); // 자두
console.log(fruits[3]); // undefined;


#### 배열의 요소를 수정
위와 같은 방법을 응용해 배열의 요소를 수정할 수 있습니다.

let fruits = ["사과", "오렌지", "자두"];

fruits[2] = "수박";
console.log(fruits); // 자두가 수박으로 수정됐습니다.



#### 배열의 요소를 추가
위와 같은 방법을 응용해 배열의 요소를 추가하는 것도 가능합니다.

let fruits = ["사과", "오렌지", "자두"];

fruits[3] = "추가된 자료";
console.log(fruits); // '사과', '오렌지', '자두', '추가된 자료'가 출력됩니다.


#### 배열의 요소의 갯수 파악

let fruits = ["사과", "오렌지", "자두"];

console.log(fruits.length); // 3이 출력됩니다. index는 0,1,2 지만 갯수는 3개 입니다.


#### 배열에서 trailing 쉼표
배열의 마지막 요소는 객체와 마찬가지로 쉼표로 끝날 수 있습니다.



## pop, push와 shift, unshift 이해하기

**push** : 맨 끝에 요소를 추가합니다.
(배열 끝에 요소를 추가합니다.)
ex)

let fruits = ["사과", "오렌지", "자두"];

fruits.push('배');
console.log(fruits); // 배열의 끝에 배를 추가합니다.



**shift** : 제일 앞 요소를 꺼내 제거한 후 나머지 요소를 앞으로 밀어줍니다. (두 번 째 요소가 첫 번째 요소가 됩니다.)
ex)

let fruits = ["사과", "오렌지", "자두"];

fruits.shift();
console.log(fruits); // 배열 맨 앞 사과를 제거하고, 오렌지, 자두를 출력



**pop** : 스택 끝 요소를 추출합니다.
(배열의 끝 요소를 제거하고, 제거한 요소를 반환합니다.)
ex)

let fruits = ["사과", "오렌지", "자두"];

fruits.pop();
console.log(fruits); // '자두'를 제외한 사과, 오렌지 출력



**unshift** : 배열 앞에 요소를 추가합니다.
ex)

let fruits = ["사과", "오렌지", "자두"];

fruits.unshift('수박');
console.log(fruits); // 수박, 사과, 오렌지, 자두 출력


#### push와 unshift는 여러 개를 한 번에 추가할 수도 있습니다.

let fruits = ["사과"];

fruits.push("오렌지", "배");
fruits.unshift("파인애플", "레몬");

// ["파인애플", "레몬", "사과", "오렌지", "배"]
alert( fruits );


배열은 순서가 있는 자료를 저장하는 용도로 만들어진 특수한 자료구조입니다.
따라서 배열을 신중하게 조정하고, 배열을 사용할 때는 목적에 맞게 사용해야합니다.

## 배열에서 반복문
for문은 배열을 순회할 때 쓰는 가장 기본적인 방법입니다. 순회시에는 인덱스를 사용합니다.

let arr = ["사과", "배", "바나나"];

for(let i = 0; i < arr.length; i++) {
console.log(arr[i]);
}

// 사과
// 배
// 바나나
// 위 와 같이 한 줄씩 출력합니다.


### 배열을 순회하는 방법으로는 for...of 가 있습니다.

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

for(let fruit of fruits){
console.log(fruit);
}
// 사과
// 배
// 바나나
// 위와 같이 한 줄 씩 출력합니다.


for..of를 사용하게 될 경우 요소의 인덱스는 얻을 수 없고 값만 얻을 수 있습니다.

### for...in (for...of와 다르기 때문에 조심해야 합니다.)
for...in은 모든 Property를 대상으로 순회합니다.
하지만 속도가 느리기 때문에 배열에서 for...in은 권장하지 않습니다.

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

for(let fruit in fruits){
console.log(fruits[fruit]);
}



#### 배열에서 'length' Property
배열에서 조작을 할 경우 length는 자동으로 갱신됩니다.

배열의 길이를 임의로 줄여버리면 이후의 값은 삭제됩니다.
ex)

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

arr.length = 2;
console.log(arr); // 1,2만 출력한다.

이런 특징을 활용해 arr.length = 0 을 칠 경우 배열이 초기화 됩니다.

#### 다차원 배열
배열 역시 배열의 요소가 될 수 있습니다. 다차원 배열은 행렬을 저장하는 용도로 쓰입니다.

let matrix = [
[1,2,3], // 0
[4,5,6], // 1 (0,1,2) 해서 중간값이 5!
[7,8,9]
];

console.log(matrix[1][1]); // 5를 반환합니다.











profile
메일은 매일 확인하고 있습니다. 궁금하신 부분이나 틀린 부분에 대한 지적사항이 있으시다면 언제든 편하게 연락 부탁드려요 :)

0개의 댓글