[Javascript] 자바스크립트 배열(Array)
배열(Array)
- 자바에서는 순수배열과 컬렉션의 개념이 따로 있음.
- 자바스크립트는 두개의 개념이 같이 존재.
- Array + Collection : 길이 가변
자바에서의 배열 선언 : int[] nums = new int[3];
자바스크립트의 배열선언
var nums = new Array();
값 대입
nums[0] = 100;
nums[1]=200;
nums[2]=300;
3,4 건너 뛰고 바로 5에 대입 -> 길이가 3개로 줬는데 어떻게 가능? -> List의 개념과 비슷(길이 가변)
nums[5]=500;
console.log(nums.length); 6 -> 배열의 length는 항상 마지막 인덱스에 1을 더한 값으로 표현됨.
for(var i =0; i<nums.length; i++){
console.log(i,nums[i]);
}
- 결과
0 100
1 200
2 300
3 undefined
4 undefined
5 500
console.log(nums[6]); undefined
var nums=new Array();
nums["onde"]="하나";
nums["two"]="둘";
console.log(nums["onde"]); 하나
nums[0]="셋";
console.log(nums[0]); 셋
- 자바스크립트의 배열은 인덱스(자바의 List 인터페이스) 배열과 연관배열(자바의 Map 인터페이스) 구조 두개를 같이 쓸 수 있다.
- 그렇다면 위의 예제에서 nums["0"] 의 경우는?? -> 셋 -> 그냥 nums[0]으로 해석된다. -> 문자열 내의 문자가 숫자일 경우 자동 타입변환 된다.
배열선언 방법
var nums2= new Array(100,200,300);
var nums3=[100,200,300];
var nums4 = new Array(); //빈배열
var nums5 = [];
- 0~99
for(var i =0; i<=99; i++){
nums5[i]=i;
}
- 3의 배수 x 100개
var nums6 = [];
for(var i=3 ; i<=300; i+=3){
/* nums6[i]=i; */
nums6.push(i); 이렇게하면 최대 index 다음 index 부터 삽입된다.
}
console.log(typeof nums6); object 배열은 타입이 object이다. array라는 타입은 없다.