배열(Array)

  1. 문법

var member = ['egoing', 'k8805', 'sorialgi'];

2. 함수의 output으로 사용될 수 있는 배열

function get_members() {
    return ['egoing','k8805','sorialgi'];
}
var members = get_members();
document.write(members[0]);
document.write(members[1]);
document.write(members[2]);

다음은 배열과 관련된 메소드들이다.

toUpperCase()

대문자로 바꿔주는 함수이다.

a = 'egoing'
a.toUpperCase();//EGOING

length

배열의 길이를 알 수 있다.

var a = ['egoing','k8805','sorialgi','leezche'];
alert (a.length);//4

아래 코드는 문자열 배열을 대문자로 출력하는 코드이다.

function get_members(){
    return ['egoing','k8805','sorialgi','leezche'];
}
members = get_members();

for(var i = 0; i < members.length; i++) {
    document.write(members[i].toUpperCase()+"<br/>");
}

(뒤에)데이터 추가

var li = ['a','b','c','d','e'];
li.push('f');
alert(li);//a b c d e f 출력된다.

여러개의 원소를 추가

var li = ['a','b','c','d','e'];
li.concat('f','g');
alert(li);//a b c d e f g 출력된다.

(앞에)데이터 추가

var li = ['a','b','c','d','e'];
li.unshift('f');
alert(li);//f a b c d e 출력된다.

(중간에)데이터 추가

var li = ['a','b','c','d','e'];
li.splice(1,0,'B');//1번 인덱스 앞에다가 'B'를 추가한다.

실행 결과

var li = ['a','b','c'];
li.splice(1,1,'x','y');//1번 인덱스 1개를 삭제하고 'x'와 'y'를 앞에 추가한다.

splice가 하는 일은 2가지이다.

배열에 데이터를 추가하고, 삭제된 데이터를 리턴해준다.

데이터 제거

shift : 제일 앞의 원소를 제가한다.

var li = ['a','b','c','d','e'];
li.shift();//a가 제거된다.

pop : 제일 의 원소를 제가한다.

var li = ['a','b','c','d','e'];
li.pop();//e가 제거된다.

데이터 정

var li = ['c','e','a','b','d'];
li.sort();//정렬 결과 'a' 'b' 'c' 'd' 'e'
li.reverse();//역순으로 정렬 결과 'e' 'd' 'c' 'b' 'a'

정렬

배열을 정렬한다.

문법

array.sort(sortfunc)

인자명

데이터형

필수/옵션

설명

sortfunc

function

옵션

원소들 간에 무엇이 우선인지를 판단한다.

sortfunc에 해당하는 함수를 직접 작성하면 된다.

function sortNumber(a,b) {
    //비교 대상인 a와 b가 인자로 전달된다.
    //alert('a :' +a+ ", b: '+b);
    //a에서 b를 뺀 결과가 음수면 a가 b보다 작고, 0이면 같다.
    //sort 메소드는 return 값이 음수, 양수, 0인지에 따라서 순서를 정한다.
    return a-b;
}
var numbers = [20,10,9,8,7,6,5,4,3,2,1];
alert(numbers.sort(sortNumber));//array,[1,2,3,4,5,6,7,8,9,10,20]

위의 예제와 비교해서 a와 b의 순서를 바꾸면 정렬순서가 반대가 된다.

function sortNumber(a,b) {
    return b-a;
}
var numbers = [20,10,9,8,7,6,5,4,3,2,1];
alert(numbers.sort(sortNumber));//array,[20,10,9,8,7,6,5,4,3,2,1]

Last updated