개발자 미니민의 개발스터디

[javascript] Array 객체 - 배열

by mini_min
[javascript] Array 객체 - 배열

✔️ Array 객체

: 일련의 값들을 저장할 수 있는 배열을 생성할 때 사용하는 리스트 형태의 고수준 객체다.

: 배열의 각 요소는 배열의 이름과 인덱스로 접근하며, 인덱스는 0부터 시작한다.

 

📓 특징

: 타입이 고정적이지 않다. 즉, 같은 배열에 있는 원소의 타입이 서로 다를 수 있다!

: 32비트 인덱스 사용

: 크기가 동적이다 (자유자재)

: 배열을 생성하거나 크기가 변경되어 다시 할당하더라도 배열의 크기를 다시 선언할 필요 없다 ❌

: 모든 배열은 객체다! 즉, 객체 프로토타입으로부터 속성들을 상속 받은 객체다.

: 배열 리터럴에서 빠진 부분은 undefined 가 된다.

 

 

✔️ Array 객체 생성

1) 배열 리터럴을 이용한 1차원 배열

//------------------------------
// 배열 리터널을 이용한 1차원 배열 생성
var a1 = []; // 빈 배열 알아서 늘어남
var a2 = [10,20,30];
var a3 = [10,20,30,]; // 마지막에 컴마
var a4 = [10,20,,30]; // 중간에 컴마

console.log(a1.length); // 0 배열 길이가 없어서 lenght: 배열의 요소 수
console.log(a2.length); // 3
console.log(a3.length); // 3, 마지막 , 는 무시
console.log(a4.length); // 4. 10,20,undefined,30

console.log(a2[0]); // 10, 배열의 첨자는 0 부터 시작
console.log(a2[2]); // 30. 배열의 첨자는 0 부터 시작
console.log(a2[4]); // undefined, 첨자가 요소수-1 보다 크면 undefined
💡 마지막 콤마는 무시하고, 중간 콤마는 undefined 로 본다.

 

2) Array() 생성자를 이용한 1차원 배열

//-----------------------
//Array() 생성자를 이용한 배열 생성
var b1 = new Array();
var b2 = new Array(5); // 크기가 5인 배열. 모든 요소는 undefined 값을 가짐
var b3 = new Array(3, 5); // 생성자의 인자가 2개 이상이면 초기값. 크기가 2인 배열 

console.log(b1.length); //0
console.log(b2.length); //5
console.log(b3.length); //2
console.log(b3[1]); //5

 

 

✔️ Array 객체 2차원 배열 생성

✨ 2차원 배열은 열과 행이 있는 공간에 데이터를 저장한다.

var a = new Array(2); // 행수
a[0] = new Array(3); // 0행의 열수
a[1] = new Array(3); // 1행의 열수

console.log(a.length); // 2
console.log(a[0].length); // 3

//배열 리터널을 이용한 2차원 배열
var b = [[1,2,3], [10,20,30]];
console.log(b.length); //2
console.log(b[0].length); //3
console.log(b[1].length); //3
console.log(b[1][2]); //30

 

 

✔️ 배열 순회 (iterator)

1) for 문을 이용한 순회

var a = [10,20, , 40, 0];

// 배열 처음부터 끝까지 순회하기
for(let i=0; i<a.length; i++){
	console.log(a[i]); // 10 20 undefined 40 0
}

console.log('-----------')
for(let i=0; i<a.length; i++){
	if(a[i]) {
		console.log(a[i]); // 10 20 40
	}
}

 

2) for ~ of 문을 이용한 순회

var b = [10,20,30];
for(let n of b){ 	//ES6 추가된 컬렉션 반복 구문
	console.log(n); //10 20 30
}

 

3) for ~ in 문을 이용한 순회

in으로 순회하면, 첨자만 반환해서 b[n] 으로 명시해야 값이 나온다.

for(let n in b){ 	//첨자만 반환
	console.log(n); // 0 1 2
}

console.log('-----------')

for(let n in b){ 	//첨자만 반환
	console.log(b[n]); // 10 20 30
}

 

 

 

 

 

블로그의 정보

개발자 미니민의 개발로그

mini_min

활동하기