본문 바로가기

프로그래밍 공부/JavaScript

JavaScript - Array 객체

Array 객체는 여러 가지 자료를 쉽게 관리할 수 있게 도와주는 객체이다.

let array1=[12345];
let array2=new Array();
let array3=new Array(10);
let array4=new Array(12345);

Array 객체는 이전에 만들던 방법부터 Array 객체를 통해 만드는 방법까지 사용할 수 있다. 위의 생성하는 법중에서 두 번째와 세 번째 방법의 차이점은 Array()에 경우 빈 배열을 만드는 것이고, Array(10)에 경우는 매개변수의 수 만큼(여기서는 10)의 크기를 가지는 배열을 생성하는 것이다.

속성 이름 설명
length 요소의 개수를 알아낸다.

for 반복문을 통해서 Array 객체의 요소를 확인 할 수 있다.

let array=[1'둘', [345], function times (n){ return n*=n; }, undefinednull ];

let
 summery='';
for(let i=0i<array.lengthi++){
     summery+= i+' : '+array[i]+'\n';
};
console.log(summery);

Array 객체에도 메서드가 있는데 String 객체와는 다르게 Array 객체의 메서드는 자기 자신을 직접 바꾸는 메서드가 존재한다. (*로 표시해둔다.)

메서드 이름 설명
concat() 매개변수로 입력한 배열의 요소를 합쳐 배열을 반환한다.
join() 배열의 모든 요소를 문자열로 바꾸고 반환한다.
pop()* 배열의 마지막 요소를 제거하고 반환한다.
push()* 배열에 마지막 부분에 새로운 요소를 추가한다.
reverse()* 배열의 요소 순서를 뒤집는다.
slice() 요소의 지정한 부분을 반환한다.
sort()* 배열의 요소를 정리한다.
splice()* 요소의 지정한 부분을 삭제하고 삭제한 요소를 반환한다.

sort() 메서드의 경우는 배열 내부의 요소들을 오름차순으로 정리를 하게 되는데, 숫자의 오름차순이 아닌 문자열의 오름차순으로 정리하게 된다는 특징이 있다. sort()의 정렬 방식에 변화를 주려면 sort()의 매개변수에 함수를 넣어주어야 한다.

오름차순 정렬(작은 수 -> 큰 수) 내림차순 정렬(큰 수 -> 작은 수)

function(left, right){
     return left - right;
}

function(left, right){
     return right - left;
}


이 방법을 이용하면 이전장에서 배웠던 생성자 함수와 배열을 이용해서 성적표를 정리후 결과를 바탕으로 내림차순으로 정리가 가능하다.

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( '최ㅇㅇ'99929991 ));
students.push(new Student( '김ㅇㅇ'88889588 ));
students.push(new Student( '국ㅇㅇ'98789978 ));
students.push(new Student( '이ㅇㅇ'79959668 ));
students.push(new Student( '문ㅇㅇ'80968684 ));
students.push(new Student( '여ㅇㅇ'75799786 ));
students.push(new Student( '박ㅇㅇ'92948993 ));
students.push(new Student( '길ㅇㅇ'96886296 ));
students.push(new Student( '홍ㅇㅇ'95879985 ));
students.push(new Student( '연ㅇㅇ'95849177 ));
 
// 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){
     this.splice(index1);
};

l
et array=[102030405060708090100];
for(let i=0i<array.lengthi++){
     if(array[i]<=50){
          array.remove(i);
     }
}
// 결과는 [20, 40, 60, 70, 80, 90, 100]
console.log(array);

Array.prototype.remove=function(index){
     this.splice(index1);
};

let array=[102030405060708090100];
for(let i = array.length -1i >= 0i--){
     if(array[i]<=50){
          array.remove(i);
     }
}
// 결과는 [60, 70, 80, 90, 100]
console.log(array);

Array 객체.html
0.00MB

'프로그래밍 공부 > 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