Please note, this is a STATIC archive of website developer.mozilla.org from 03 Nov 2016, cach3.com does not collect or store any user information, there is no "phishing" involved.

Array Object

Array 개체

JavaScript에는 명시적인 배열 자료형이 없습니다. 하지만 배열을 다루기 위해서 Array 개체와 그 개체의 메소드를 이용할 수 있습니다. Array 개체에는 다양한 방법으로 배열을 다루기 위한 메소드들이 있는데, 배열을 합치거나, 순서를 뒤집거나, 정렬하는 등의 작업을 할 수 있습니다. 배열 길이를 알 수 있는 속성과 정규 표현식에 사용할 수 있는 속성들이 있습니다. 배열 은 이름이나 색인으로 참조할 수 있는 값들을 모아놓은, 값의 순서가 유지되는 집합입니다. 예를 들어, 우리는 고용 번호로 색인된 고용인의 이름을 담고 있는 emp라는 배열을 만들 수 있습니다. 이 때 emp[1]는 1번 고용인, emp[2] 2번 고용인이 되는 것입니다.

 

배열 만들기

Array 개체는 이렇게 만들 수 있습니다.

1. arrayObjectName = new Array(element0, element1, ..., elementN)
2. arrayObjectName = new Array(arrayLength)

arrayObjectName은 새 개체의 이름이거나 존재하는 다른 개체의 속성 이름입니다. Array 개체의 속성이나 메소드를 이용할 때는 arrayObjectName은 존재하는 Array 개체 이름이거나 존재하는 다른 개체의 속성입니다.

element0, element1, ..., elementN는 배열의 원소(element)가 될 값들입니다. 이런 식으로 지정하면, 나열한 값들을 원소로 가지고, 길이는 값의 개수인 배열이 만들어집니다.

arrayLength는 배열의 초기 길이입니다. 다음 코드는 원소 다섯 개를 가지는 배열을 만듭니다.

billingMethod = new Array(5)

배열 상수값 또한 Array 개체입니다. 예를 들어, 다음과 같은 상수값은 Array 개체입니다. 배열 상수값에 대한 자세한 내용은 배열 상수값을 보시기 바랍니다.

coffees = ["French Roast", "Columbian", "Kona"]

배열에 원소 넣기

원소에 값을 할당함으로써 배열에 값을 넣을 수 있습니다.

emp[1] = "Casey Jones"
emp[2] = "Phil Lesh"
emp[3] = "August West"

배열을 만들 때 값을 넣을 수도 있습니다.

myArray = new Array("Hello", myVar, 3.14159)

배열 원소 참조하기

배열 원소의 순서를 나타내는 숫자로 원소를 참조할 수 있습니다. 예를 들어 다음과 같은 배열을 만들었다고 해봅시다.

myArray = new Array("Wind","Rain","Fire")

그러면 첫 번째 원소는 myArray[0]으로 참조할 수 있고, 두 번째 원소는 myArray[1]로 참조할 수 있습니다.

원소의 색인은 영(0)부터 시작하지만 배열 길이(예를 들면 myArray.length)는 배열의 원소 개수를 나타냅니다.

 

Array 개체의 메소드

Array 개체는 다음과 같은 메소드들을 가지고 있습니다.

  • concat 메소드는 두 배열을 합쳐서 새 배열 하나를 반환합니다.
myArray = new Array("1","2","3")
myArray = myArray.concat("a", "b", "c"); // myArray는 ["1", "2", "3", "a", "b", "c"]이 되었습니다.
  • join(deliminator = ",") 메소드는 배열의 모든 원소를 문자열로 바꿔서 하나의 문자열을 만들어줍니다.
myArray = new Array("Wind","Rain","Fire")
list = myArray.join(" - "); // list는 "Wind - Rain - Fire"입니다.
  • pop 메소드는 배열의 마지막 원소를 배열에서 제거하고 그 원소를 반환합니다.
myArray = new Array("1", "2", "3");
last=myArray.pop(); // MyArray는 ["1", "2"], last = "3"이 되었습니다.
  • push 메소드는 하나 또는 그 이상의 원소를 배열 끝에 추가하고, 추가된 마지막 원소를 반환합니다.
myArray = new Array("1", "2");
myArray.push("3"); // MyArray는 ["1", "2", "3"]이 되었습니다.
  • reverse 메소드는 원소의 순서를 뒤집어서 첫 번째 원소가 마지막 원소가 되고, 마지막 원소가 첫 번째 원소가 되도록 합니다.
myArray = new Array ("1", "2", "3");
myArray.reverse(); // myArray = [ "3", "2", "1" ]이 되었습니다.
  • shift 메소드는 첫 번째 요소를 배열에서 제거하고, 그 원소를 반환합니다.
myArray = new Array ("1", "2", "3");
first=myArray.shift(); // MyArray는 ["2", "3"], first는 "1"이 되었습니다.
  • slice (start_index, upto_index) 메소드는 배열의 일부분을 추출하여 새 배열을 반환합니다.
myArray = new Array ("a", "b", "c", "d", "e");
myArray = myArray.slice(1,4); //색인 1부터 색인 4 바로 앞까지의 원소를 추출해서 [ "b", "c", "d" ]를 반환합니다.
  • splice(index, count_to_remove, addelement1, addelement2, ...) 메소드는 배열에 원소를 추가하거나 배열에서 원소를 제거합니다.
myArray = new Array ("1", "2", "3", "4", "5");
myArray.splice(1,3,"a","b","c", "d"); // MyArray는 ["1", "a", "b", "c", "d", "5"]가 되었습니다.
// 이 코드는 색인 1(즉 "2")부터 원소 세 개를 제거하고, 그 자리에 원소를 추가합니다.
  • sort 메소드는 원소를 정렬합니다.
myArray = new Array("Wind","Rain","Fire")
myArray.sort(); // 배열을 정렬했으므로 myArrray = [ "Fire", "Rain", "Wind" ]가 되었습니다.

sort 메소드에 배열을 어떻게 정렬할지 결정하는 콜백 함수를 전해줄 수 있습니다. 그 함수는 두 값을 비교해서 다음 셋 중 하나를 반환해야 합니다.

  • 정렬할 때 a가 b보다 작다면 -1(또는 임의의 음수)를 반환
  • 정렬할 때 a가 b보다 크다면 1(또는 임의의 양수)를 반환
  • a와 b가 같으면 0을 반환

예를 들어 다음 코드는 원소의 마지막 글자를 기준으로 배열을 정렬합니다.

var sortFn = function(a,b){
    if (a[a.length - 1] < b[b.length - 1]) return -1;
    if (a[a.length - 1] > b[b.length - 1]) return 1;
    if (a[a.length - 1] == b[b.length - 1]) return 0;
    }
myArray.sort(sortFn); // 배열을 정렬했으므로 myArray = ["Wind","Fire","Rain"]가 되었습니다.
  • unshift 메소드는 하나 또는 그 이상의 원소를 배열 앞에 추가하고 배열의 새 길이를 반환합니다.

2차원 배열

다음 코드는 2차원 배열을 만듭니다.

a = new Array(4)
for (i=0; i < 4; i++) {
   a[i] = new Array(4)
   for (j=0; j < 4; j++) {
      a[i][j] = "["+i+","+j+"]"
   }
}

바로 위 코드는 이런 배열을 만들어냅니다.

Row 0:[0,0][0,1][0,2][0,3]
Row 1:[1,0][1,1][1,2][1,3]
Row 2:[2,0][2,1][2,2][2,3]
Row 3:[3,0][3,1][3,2][3,3]

배열과 정규 표현식

배열이 정규 표현식과 문자열을 매치한 결과로 생성되었을 때, 그 배열은 매치에 대한 정보를 제공하는 속성과 원소를 포함하고 있습니다. RegExp.exec, String.match, String.split의 반환 값은 배열입니다. 정규 표현식과 관련된 배열 사용에 대한 정보를 얻으려면 4장 정규 표현식을 보십시오.

문서 태그 및 공헌자

 이 페이지의 공헌자: teoli, Wafe
 최종 변경: teoli,