Study/Node.js

[노드 JS] 배열 이해하기

AC 2019. 3. 14. 23:30


배열은 여러 개의 데이터를 하나의 변수에 담아 둘 수 있어서 자주 사용되며, 배열 안에 들어 있는 요소(또는 원소, Item)들은 대괄호 []를 이용해서 접근할 수 있다. 배열이 만들어지는 모양은 다음과 같다.



▲ 배열이 만들어지는 모양


만약 다섯 명의 사용자 정보를 관리하기 위해 다섯 개의 객체를 만들고 각각 다른 이름의 변수에 할당했다면 매번 다섯 개의 변수에 접근하고 관리해야 한다. 그런데 Users 변수를 하나만 만들고 그 안에 다섯 개의 사용자 객체를 넣어 한꺼번에 관리할 숭 ㅣㅆ다면 각각을 따로 관리하는 것보다 훨씬 편리해진다.


이렇게 여러 개의 데이터를 편리하게 다룰 수 있기 때문에 배열을 자주 사용한다.


배열에 추가되는 요소들은 0부터 시작하는 인덱스(Index) 번호로 접근할 수 있다. 배열을 만들 때는 대괄호[]를 이용해 만들고

그 안에 요소를 추가할 때는 push() 메소드를 사용한다.


ch03_test8.js 파일을 만들고 다음 코드를 입력하자.




var Users = [{name : '소녀시대', age:20}, {name:'걸스데이', age:22}]


Users.push({name:'티아라', age:23});


console.log('사용자 수 : %d', Users.length);

console.log('첫 번째 사용자 이름 : %s', Users[0].name);



배열 객체를 하나 만든 후 Users 변수에 할당했다. 배열 안에는 name과 age 속성을 가진 객체가 두 개 들어 있다. 이 배열에 새로운 객체를 추가하고 싶다면 push() 메소드를 호출하면 되고 배열에 들어 있는 요소들의 개수를 알아내려면 length 속성을 사용하면 된다.


각각의 배열 요소에 접근하기 위해서는 대괄호와 함께 그 요소의 인덱스 정보를 사용한다.


이 파일을 실행하면 다음과 같이 사용자 객체의 수가 3으로 출력된다.




▲ 배열에 추가한 사용자 객체의 수와 배열 요소에 접근한 결과 출력


그런데 이미 앞에서 알아본 것처럼 변수에는 함수를 할당할 수 있다고 했다. 따라서 배열의 각 요소에도 함수를 직접 할당할 수 있다.

push() 함수를 호출하여 함수를 배열 객체에 추가해 보자.


ch03_test9.js 파일을 만들고 다음과 같이 입력한다.


var Users = [{name:'소녀시대', age:20}, {name:'걸스데이', age:22}];


var add = function(a, b){

    return a+b;

};


Users.push(add);


console.log('배열 요소의 수 : %d', Users.length);

console.log('세 번째 요소로 추가된 함수 실행 : %d', Users[2](10, 10));




add 변수에 할당되었던 더하기 함수를 Users 배열에 그대로 추가했다. 이렇게 추가한 배열 요소는 세 번째 요소가 되므로 Users[2] 코드로 접근할 수 있다. 


이렇게 접근한 요소가 함수이므로 함수를 실행하기 위해서는 users[2](10,10) 코드를 사용할 수 있다. 


이렇게 하면 대괄호 뒤에 바로 소괄호가 오는 코드 형태가 만들어져 약간 복잡하게 보인다. 다만 어떻게 이런 코드가 만들어질 수 있는지를 생각하면서 보면 이해가 될 것이다.


이렇게 배열에 함수를 넣어 두고 그 함수를 실행하는 방식은 자바나 C언어와 같은 타입 기반 언어ㅔ서는 보기 힘들다.


그만큼 자바스크립트의 함수는 유연하게 사용할 수 있다.



LIST