Array객체는 여러가지 자료를 쉽게 관리하게 해주는 객체이다. Array객체 생성방법은 4가지가 있다.
1
2
3
4
5
6
|
<script>
var array1 = {1, 2, 3, 4, 5};
var array2 = new Array(5);
var array3 = new Array();
var array4 = new Array(1, 2, 3, 4, 5);
</script>
|
cs |
Array객체는 몇개의 자료를가지고있는지 나타내는 length속성을 가지고 있으며 여러개의 중요 메서드를 가진다.
- join() - 배열안의 모든요소를 문자열로 바꿔서 리턴한다.
- pop() - 배열의 마지막요소를 제거후 리턴한다.
- push() - 배열의 마지막에 요소를 추가하고 리턴한다.
- reverse() - 배열의 요소 순서를 뒤집는다.
- slice() - 지정한 부분을 리턴한다.
- sort() - 배열의 요소를 정렬 후 리턴한다.
- splice() - 지정한 부분의 요소를 삭제 후 삭제한 요소를 리턴한다.
sort()메서드를 사용할 때 정렬에 변화를 주고 싶으면 메서드의 매개변수로 함수를 사용한다.
1
2
3
4
5
6
7
8
|
<script>
var array1 = [52, 273, 103, 32];
array1.sort(function(left, right){
return right-left;
});
alert(array1);
</script>
|
cs |
right-left는 내림차순 정렬이고, left-right로 바꾸면 오름차순 정렬이된다.
Array객체 메서드를 활용해서 학생 4명의 정보를 입력하고 총점순으로 2등까지만 출력하게 해봤다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
|
<script>
function Student(name, korean, math, english){
this.이름 = name;
this.국어 = korean;
this.수학 = math;
this.영어 = english;
this.getSum = function(){
return this.국어 + this.수학 + this.영어;
};
this.getAverage = function(){
return this.getSum / 3;
};
this.toString = function(){
return this.이름 + "\t" + this.getSum() + "\t" + this.getAverage();
};
}
var students = [];
students.push(new Student('윤하린', 90, 90, 90));
students.push(new Student('하뤼이', 80, 80, 80));
students.push(new Student('내가아', 100, 100, 97));
students.push(new Student('아녕아', 40, 29, 99));
students.sort(function(left, right){
return right.getSum() - left.getSum();
});
students = students.slice(0,2);
var output = '이름 \t총점\t평균\n';
for(var i in students){
output += students[i].toString() + '\n';
}
alert(output);
</script>
|
cs |
총점이 제일높은 내가아, 윤하린 2명의 정보가 출력된다.
Array객체에는 요소를 제거하는 메서드가 없는데 prototype과 splice()를 통해 remove메서드를 만들 수 있다.
1
2
3
4
5
6
7
8
|
<script>
Array.prototype.remove = function(index){
this.splice(index, 1);
}
var array1 = new Array(1,2,3,4,5);
array1.remove(2);
alert(array1);
</script>
|
cs |
이렇게하면 2번째 위치에있는 3이제거가되고 1,2,4,5가 출력된다. 배열에서 조건값보다 큰 숫자를 삭제하기 위한 for문을 사용하려면 역 for문을 사용해야한다. 왜냐하면 배열에서는 인덱스값이 삭제가되면 그 공간이 사라지고 뒤에있던 인덱스값이 그 자리를 채우기 때문이다.
'Javascript' 카테고리의 다른 글
JavaScript(2) - 내장 객체(Object, String) (0) | 2019.04.17 |
---|---|
JavaScript(1) - 캡슐화와 상속 (0) | 2019.04.15 |