Array 객체

선언: var nums = new Array();

1. push/pop 메소드를 이용한 데이터 관리: Stack 형태

nums.push(1);
alert(nums); //1
nums.push(2);
alert(nums); //1,2
nums.push(3);
alert(nums); //1,2,3

을 하게되면, 카드가 쌓이는것 처럼 1, 2, 3 순으로 쌓인다.

var n1 = nums.pop();
alert(nums); //1,2
var n2 = nums.pop();
alert(nums); //1
var n3 = nums.pop();
alert(nums); //empty

을 하게되면, 맨 위 카드부터 3, 2, 1 순으로 빠지고 사라진다.
즉, Stack은 LIFO 형태 = Last In - First Out.
마지막에 들어온것이 가장 먼저 나간다.

2. Index를 이용한 데이터 관리: List 형태

nums[0] = 1;
alert(nums); //1
nums[1] = 2;
alert(nums); //1,2
nums[2] = 3;
alert(nums) //1,2,3

nums = [1,2,3]이라는 배열이 완성된 것이다.

alert(nums[0]) //1
alert(nums[1]) //2
alert(nums[2]) //3

위 처럼, 배열의 길이보다 작은 index를 이용하여 값을 꺼낼수 있다.
그리고 배열은 값을 꺼내도 값이 사라지지 않는다!

3. JavaScript 배열의 특징

3.1 배열선언의 의미

var nums = new Array(); //빈 배열 생성 
var nums = new Array(5); //크기가 5인 배열 생성
var nums = new Array(5,10,15); // 5, 10, 15를 초기값으로 갖는 배열 생성

3.2 배열의 유연함.

var nums = new Array(5,10,15,"15");

다른언어에서는 같은 데이터타입의 배열만 가능하지만,
JavaScript에서는 상관X
그래서 typeof를 사용해서 어떤 형태의 값인지 확인해야함.

alert(typeof nums[4]); //String

또한, 배열안에 배열이 올 수 있다. 이때, 3을 꺼내기 위해선?

var nums = new Array(5,10,15,"15",new Array(1,2,3));
alert(nums[4][2]); //3

3.3 splice 메소드를 활용한 삭제

var nums = new Array(5,10,15,"hello");

nums.splice(1); //index 1번부터 전부 삭제 = [5]

nums.splice(1,1); //1번부터 1개 삭제 = [5,10,"hello"]

nums.splice(1,2); //1번부터 2개 삭제 = [5,"hello"]

nums.splice(3,1,"hi"); //3번을 삭제하고 "hi"를 넣음 = [5,10,15,"hi"]

nums.splice(3,0,"hi"); //3번째 위치에 삭제없이 "hi"가 삽입 = [5,10,15,"hi","hello"]

좋은 웹페이지 즐겨찾기