배열
- 하나의 변수에 여러개의 값을 지정하는 데이터 구조
- 순서정보 index는 0부터 시작한다.
- 크기를 미리 지정하지 않는다.
- 배열명[index]
배열 생성 및 초기화
// Array 클래스로 배열 생성 및 초기화
const arr = new Array(1, 2, 3);
// JSON 표기법으로 배열 생성 및 초기화
const arr = [ 1, 2, 3 ];
요소 추가
- push(): 배열의 메서드로, 일반 object에서는 사용이 불가능
배열의 마지막에 요소 추가
// 지정한 배열의 마지막에 요소를 추가
arr.push(10); // [ 1, 2, 3, 10 ]
arr[arr.length] = 300; [ 1, 2, 3, 10, 300 ]
arr[5] = 20; // [ 1, 2, 3, 10, 300, 20 ]
arr[6] = 30; // [ 1, 2, 3, 10, 300, 20, 30 ]
// 중간 인덱스를 건너띄고 요소 추가
// 비어있는 배열은 undefined 값을 가짐
arr[10] = 200; // [ 1, 2, 3, 10, 300, 20, 30, , , , 200 ]
요소 갱신
// 기존 값을 변경
arr[1] = 100; // [ 1, 100, 3, 10, 20, 30, , , , 200 ]
배열 출력
console.log(arr);
// 출력 결과: [ 1, 100, 3, 10, 300, 20, 30, <3 empty items>, 200 ]
// 배열의 길이 출력
console.log(arr.length);
// 출력 결과: 11
// 배열의 마지막 값 출력
console.log(arr[arr.length-1]);
// 출력 결과: 200
배열의 모든 요소 접근
// 배열 생성
const arr = [4, 1, 3, 8];
for문
for(let i = 0; i<arr.length; i++){
const elem = arr[i];
console.log(i, elem);
}
// 출력 결과: 0 4
1 1
2 3
3 8
for-of문
- index 사용 없이 배열 요소의 값만 꺼내서 사용
for(let elem of arr){
console.log(elem);
}
// 출력 결과: 4
1
3
8
2차원 배열
2차원 배열 생성
const numbers = [
[2, 4, 6, 8],
[3, 6, 9, 12],
[4, 8, 12, 16],
[5, 10, 15, 20]
];
2차원 배열 출력
console.log(numbers[1]);
// 출력 결과: [3, 6, 9, 12]
console.log(numbers[2]);
// 출력 결과: [4, 8, 12, 16]
console.log(numbers[0][2]);
// 출력 결과: 6
console.log(numbers[3][2]);
// 출력 결과: 15
2차원 배열 접근
for문
let sum = 0;
for (let i =0; i<numbers.length; i++){
for(let k = 0; k<numbers[i].length; k++){
sum += numbers[i][k];
}
}
console.log(sum);
// 출력 결과: 140
for-of문
let sum = 0;
for(rowArr of numbers){
for(elem of rowArr){
sum += elem
}
}
console.log(sum);
// 출력 결과: 140
유사 배열 객체
- 배열과 비슷하게 사용할 수 있는 객체
- length 속성 사용 가능, index를 통한 접근 가능, push 메서드 사용 불가능
- 읽기를 목적으로 사용된다
- 적은 비용으로 생성 가능
유사 배열 생성
const arr = {
length: 3, // length 속성에 크기를 지정하고
0: 'orange', // 0부터 증가하는 객체를 지정
1: 'yellow',
2: 'green',
}
};