Array 객체는 여러 가지 자료를 쉽게 관리할 수 있게 도와주는 객체이다.
let array1=[1, 2, 3, 4, 5]; |
Array 객체는 이전에 만들던 방법부터 Array 객체를 통해 만드는 방법까지 사용할 수 있다. 위의 생성하는 법중에서 두 번째와 세 번째 방법의 차이점은 Array()에 경우 빈 배열을 만드는 것이고, Array(10)에 경우는 매개변수의 수 만큼(여기서는 10)의 크기를 가지는 배열을 생성하는 것이다.
속성 이름 | 설명 |
length | 요소의 개수를 알아낸다. |
for 반복문을 통해서 Array 객체의 요소를 확인 할 수 있다.
let array=[1, '둘', [3, 4, 5], function times (n){ return n*=n; }, undefined, null ]; |
Array 객체에도 메서드가 있는데 String 객체와는 다르게 Array 객체의 메서드는 자기 자신을 직접 바꾸는 메서드가 존재한다. (*로 표시해둔다.)
메서드 이름 | 설명 |
concat() | 매개변수로 입력한 배열의 요소를 합쳐 배열을 반환한다. |
join() | 배열의 모든 요소를 문자열로 바꾸고 반환한다. |
pop()* | 배열의 마지막 요소를 제거하고 반환한다. |
push()* | 배열에 마지막 부분에 새로운 요소를 추가한다. |
reverse()* | 배열의 요소 순서를 뒤집는다. |
slice() | 요소의 지정한 부분을 반환한다. |
sort()* | 배열의 요소를 정리한다. |
splice()* | 요소의 지정한 부분을 삭제하고 삭제한 요소를 반환한다. |
sort() 메서드의 경우는 배열 내부의 요소들을 오름차순으로 정리를 하게 되는데, 숫자의 오름차순이 아닌 문자열의 오름차순으로 정리하게 된다는 특징이 있다. sort()의 정렬 방식에 변화를 주려면 sort()의 매개변수에 함수를 넣어주어야 한다.
오름차순 정렬(작은 수 -> 큰 수) | 내림차순 정렬(큰 수 -> 작은 수) |
function(left, right){ |
function(left, right){ |
이 방법을 이용하면 이전장에서 배웠던 생성자 함수와 배열을 이용해서 성적표를 정리후 결과를 바탕으로 내림차순으로 정리가 가능하다.
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
38
39
40
41
|
function Student(name, korean, math, english, science){
this.Name=name;
this.Korean=korean;
this.Math=math;
this.English=english;
this.Science=science;
};
Student.prototype.getSum=function(){
return this.Korean+this.Math+this.English+this.Science;
};
Student.prototype.getAverage=function(){
return this.getSum()/4;
};
Student.prototype.getResult=function(){
return this.Name+'\t'+this.getSum()+' \t'+this.getAverage();
};
let students = [];
students.push(new Student( '최ㅇㅇ', 99, 92, 99, 91 ));
students.push(new Student( '김ㅇㅇ', 88, 88, 95, 88 ));
students.push(new Student( '국ㅇㅇ', 98, 78, 99, 78 ));
students.push(new Student( '이ㅇㅇ', 79, 95, 96, 68 ));
students.push(new Student( '문ㅇㅇ', 80, 96, 86, 84 ));
students.push(new Student( '여ㅇㅇ', 75, 79, 97, 86 ));
students.push(new Student( '박ㅇㅇ', 92, 94, 89, 93 ));
students.push(new Student( '길ㅇㅇ', 96, 88, 62, 96 ));
students.push(new Student( '홍ㅇㅇ', 95, 87, 99, 85 ));
students.push(new Student( '연ㅇㅇ', 95, 84, 91, 77 ));
// sort(function(left, right){})를 이용해 내림차순 정리
students.sort(function(left, right){
return right.getSum() - left.getSum();
});
let summery='이름\t총점\t평균\t순위\n';
for(let i in students){
summery+=students[i].getResult()+'\n';
}
console.log(summery);
|
cs |
Array 객체에서 특정 요소를 제거하는 메서드는 따로 있지는 않다. slice() 메서드를 이용하면 특정 요소를 제거하는 기능은 쉽게 만들 수 있고, prototype에 remove() 메서드를 추가하면 배열의 요소를 쉽게 제거가 가능하다. for 반복문과 if 조건문을 통해서 배열안에 숫자가 특정한 숫자보다 작으면 splice() 를 사용해 제거가 가능한데, 주의할 점이 있다면 단순 for 반복문이 아닌 역 for 반복문을 사용해야 한다. 이유는 배열의 요소가 제거가 되면서 인덱스가 앞으로 당겨지기 때문이다.
단순 for 반복문 | 역 for 반복문 |
Array.prototype.remove=function(index){ |
Array.prototype.remove=function(index){ |
'프로그래밍 공부 > JavaScript' 카테고리의 다른 글
JavaScript - Math 객체 (0) | 2019.12.13 |
---|---|
JavaScript - Date 객체 (0) | 2019.12.12 |
JavaScript - String 객체 (0) | 2019.12.12 |
JavaScript - Number 객체 (0) | 2019.12.11 |
JavaScript - Object 객체 (0) | 2019.12.11 |