본문 바로가기

웹언어/JAVASCRIPT

[JS강좌] 12강 자바스크립트 기본내장객체 - Array - 오쌤의 니가스터디

728x90
반응형

 

 

 

 

 

 

** 영상으로 보고 싶은 분은 아래 주소를 클릭하세요!

https://www.youtube.com/watch?v=lAnrCuVxNWc 

 

 

 

 

* 기본내장객체

종류 설명
String 문자열 객체
Number 숫자 객체
Math 수학 객체
Array 배열 객체
Date 날짜시간객체

- 기본내장객체는 첫글자를 대문자로 작성하는 것이 규칙

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1. Array 객체 선언

- 배열은 값을 여러개 나열해서 담는 공간을 의미합니다.

 

 

1) 변수식 선언

## 문법

var 변수명 = [값1, 값2,...];

 

 

## 예시 코드

<!DOCTYPE html>
<html lang="ko">
    <head>
        <meta charset="UTF-8">
        <title>JS Array 객체</title>
        <script>
            var arr01 = [10,20,30];

            document.write(arr01 + '<br>');

            //typeof(값) : 값(데이터)의 유형을 반환
            document.write(typeof(arr01));
        </script>
    </head>
    <body>
        
    </body>
</html>

- 변수 arr01에 10, 20, 30이라는 값을 나열해서 담았습니다.

- 결과값을 문서에 출력하고, 값의 타입도 알아보는 코드를 작성하였습니다.

 

 

 

## 코드 결과

- 값은 10,20,30을 잘 반환하였고, 값의 유형을 object로 객체로 나오는 것을 확인할 수 있습니다.

 

 

 

 

 

 

 

 

 

2) 생성자 함수를 이용한 객체식 선언

- 기본내장객체는 미리 선언되어 있어 생성자 함수를 통해 호출해서 사용하면 됩니다.

 

## 문법

var 변수명 = new Array(값1, 값2, 값3);

 

 

## 예시코드

<!DOCTYPE html>
<html lang="ko">
    <head>
        <meta charset="UTF-8">
        <title>JS Array 객체</title>
        <script>
            var arr02 = new Array(10,20,30);

            document.write(arr02 + '<br>');

            //typeof(값) : 값(데이터)의 유형을 반환
            document.write(typeof(arr02));
        </script>
    </head>
    <body>
        
    </body>
</html>

 

 

 

## 코드 결과

- 결과는 위와 동일합니다.

- 다른 기본내장객체는 보통 변수식 선언을 선호하나 Array같은 경우는 둘다 선호합니다.

 

 

 

 

 

 

 

 

 

 

3) Array객체의 일부값 호출

- 객체 전체를 호출하면 전체값을 호출하지만, Array는 일부값을 호출할 수 있습니다.

 

## 문법

배열명[인덱스번호];

- 첫번째값의 배열번호는 0번입니다.

- 자바스크립트는 인덱스번호를 0번부터 시작합니다.

 

 

## 예시코드

<!DOCTYPE html>
<html lang="ko">
    <head>
        <meta charset="UTF-8">
        <title>JS Array 객체</title>
        <script>
            //소녀시대 배열
            var ss = ['윤아','수영','효연','서현','유리','티파니','태연','써니','제시카'];

            //전체호출 : 배열명
            document.write('소녀시대 멤버 : ' + ss + '<br>');

            //일부호출 : 배열명[인덱스번호]
            document.write('태티서 멤버 : ' + ss[6]+ss[5]+ss[3]);
        </script>
    </head>
    <body>
        
    </body>
</html>

- 소녀시대 멤버를 배열값을 담아봤습니다.

- 처음에는 모든 멤버를 출력하고, 그 다음에는 태티서멤버만 출력해보겠습니다.

 

 

 

## 코드 결과

- 원하는대로 결과가 잘 도출되는 것을 확인할 수 있습니다.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


 

 

 

 

 

 

 

 

 

 

 

2. Array 객체 속성

- 모든 객체는 속성과 메서드를 갖고 있습니다.

- 물론 경우에 따라 속성만 갖고 있을수도, 메서드만 갖고 있을수도 있습니다.

 

 

 

1) length 속성

- length속성은 배열 값의 개수를 반환하는 속성입니다.

 

## 문법

Array객체.length;

 

 

## 예시 코드

<!DOCTYPE html>
<html lang="ko">
    <head>
        <meta charset="UTF-8">
        <title>JS Array 객체</title>
        <script>
            //소녀시대 배열
            var ss = ['윤아','수영','효연','서현','유리','티파니','태연','써니','제시카'];

            //length : 배열의 개수를 반환하는 속성
            //소녀시대는 X명입니다.
            document.write('과거 소녀시대는 ' + ss.length + '명입니다.<br>');

            ss = ['윤아','수영','효연','서현','유리','티파니','태연','써니'];

            document.write('현재 소녀시대는 ' + ss.length + '명입니다.<br>');
        </script>
    </head>
    <body>
        
    </body>
</html>

- 소녀시대 멤버는 9명이었습니다. 

- 하지만 멤버가 추가될 수도 있고, 누군가는 빠질 수도 있습니다.

- 그래서 9라는 상수를 적으면 안되고, 값의 개수를 확인하면 됩니다. 

 

 

 

## 코드 결과

- 결과가 잘 도출되는 것을 확인할 수 있습니다.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

728x90

 

 

 

 

 

 

 

 

 

 

 

 

 

3. Array 객체 메서드

- 메서드는 많이 있습니다. 표를 통해 전체적으로 정리 후 아래 몇개만 예제로 보도록 하겠습니다.

메서드 종류 설명
concat(a,b,..) 매개변수로 입력한 배열의 요소를 모두 합쳐 배열을 만들어 반환
indexOf(a) 매개변수 a가 배열 중 몇번째 있는지 인덱스번호로 반환
join() 배열값을 문자열로 반환
map(콜백함수) 배열의 모든 값을 콜백함수에서 호출한 결과로 새 배열로 반환
pop() 배열의 마지막 요소를 제거하고 반환
push(a) 배열의 마지막 부분에 새로운 요소(매개변수인 a)를 추가
reverse() 배열의 요소 순서를 뒤집음
shift() 배열의 첫번째 요소를 제거하고 반환
slice(start,end) 배열 요소에서 매개변수로 지정한 부분을 리턴
sort() 배열의 요소를 정렬
splice(separator,limit) 배열 요소의 지정한 부분을 삭제하고 삭제한 요소를 리턴
unshift(a) 배열의 첫번째 부분에 새로운 요소(매개변수인 a)를 추가

 

 

 

 

 

 

1) concat() 

- 객체선택된 배열과 매개변수의 배열을 합치는 메서드입니다.

 

## 문법

Array객체.concat(다른배열명);

 

 

## 예시코드

<!DOCTYPE html>
<html lang="ko">
    <head>
        <meta charset="UTF-8">
        <title>JS Array 객체</title>
        <script>
            //소녀시대 배열
            var ss = ['윤아','수영','효연','서현','유리','티파니','태연','써니','제시카'];

            var rv = ['웬디','아이린','슬기','조이','예리'];

            document.write(ss.concat(rv));
        </script>
    </head>
    <body>
        
    </body>
</html>

 

 

 

## 코드 결과

 

 

 

 

 

 

2) 요소 제거메서드

- pop() : 맨 뒤의 요소를 제거하는 메서드입니다.

- shift() : 맨 앞의 요소를 제거하는 메서드입니다.

 

 

## 문법

Array객체.pop();
Array객체.shift();

 

 

## 예시코드

<!DOCTYPE html>
<html lang="ko">
    <head>
        <meta charset="UTF-8">
        <title>JS Array 객체</title>
        <script>
            //소녀시대 배열
            var ss = ['윤아','수영','효연','서현','유리','티파니','태연','써니','제시카'];

            document.write('처음배열 : ' + ss + '<br>');

            ss.pop(); //제시카제거

            document.write('맨뒤제거 : ' + ss + '<br>');

            ss.shift(); //윤아제거

            document.write('맨앞제거 : ' + ss + '<br>');
        </script>
    </head>
    <body>
        
    </body>
</html>

 

 

## 코드 결과

 

 

 

 

 

 

 

 

3) 요소 추가메서드

- push() : 맨 뒤의 요소를 추가하는 메서드입니다.

- unshift() : 맨 앞의 요소를 추가하는 메서드입니다.

 

 

## 문법

Array객체.push(요소);
Array객체.unshift(요소);

 

 

## 예시코드

 

 

 

 

 

 

 

 

4) 요소 정렬메서드1 - 문자열 정렬

- sort() : 요소들을 오름차순 정렬하는 메서드입니다.

- reverse() : 요소들의 순번을 뒤집는 메서드입니다.

- 오름차순 : 문자가 올라가는 형태로 정렬됩니다.   ex) 가 => 하, A => Z

- 내림차순 : 문자가 내려가는 형태로 정렬됩니다.   ex) 하 => 가, Z => A

 

 

## 문법

Array객체.sort();
Array객체.reverse();

 

 

## 예시코드

<!DOCTYPE html>
<html lang="ko">
    <head>
        <meta charset="UTF-8">
        <title>JS Array 객체</title>
        <script>
            //소녀시대 배열
            var ss = ['윤아','수영','효연','서현','유리','티파니','태연','써니','제시카'];

            document.write('처음배열 : ' + ss + '<br>');

            //오름차순 : 가 => 하, A => Z
            //sort() : 정렬메서드
            ss.sort();

            document.write('오름차순정렬 : ' + ss + '<br>');


            //내림차순 : 하 => 가, Z => A
            //reverse() : 값의 배열을 반전시키는 메서드
            //sort()로 오름차순 정렬 후 뒤집으면 내림차순
            ss.reverse();

            document.write('내림차순정렬 : ' + ss + '<br>');
        </script>
    </head>
    <body>
        
    </body>
</html>

 

 

## 코드 결과

- 멤버들이 이름별로 잘 정렬되어 있는 것을 확인할 수 있습니다.

 

 

 

 

 

 

 

 

5) 요소 정렬메서드2 - 숫자 정렬

- sort() : 요소(숫자)들을 정렬하는 메서드입니다.

 

 

 

## 문법

//오름차순
Array객체.sort(function(a,b){
	return a - b;
});


//내림차순
Array객체.sort(function(a,b){
	return b - a;
});

- 콜백함수(function(){})내부에 있는 매개변수명은 이름이 달라도 됩니다.

- a를 left로 써도되고, b를 right로 써도 됩니다. 

- 매개변수는 개발자가 스스로 이해하게끔 작성하면 됩니다.

 

 

 

## 예시코드

<!DOCTYPE html>
<html lang="ko">
    <head>
        <meta charset="UTF-8">
        <title>JS Array 객체</title>
        <script>
            //2. 숫자의 정렬
            var nums = [7, 11, 33, 4, 21];

            document.write('처음배열 : ' + nums + '<br>');

            //sort() : 배열의 정렬메서드
            nums.sort(); //매개변수 없이 정렬하면 문자열 정렬
            document.write('sort() : ' + nums + '<br>'); //문자처럼인식 - 11,21,33,4,7

            //숫자의 오름차순
            nums.sort(function(a,b){ //매개변수이름은 임의적으로 작성
                return a - b; //앞매개변수 - 뒷매개변수
            });
            document.write('오름차순배열 : ' + nums + '<br>');

            //숫자의 내림차순
            nums.sort(function(a,b){
                return b - a; //뒷매개변수 - 앞매개변수
            });
            document.write('내림차순배열 : ' + nums + '<br>');
        </script>
    </head>
    <body>
        
    </body>
</html>

 

 

## 코드 결과

- 콜백함수 없이  sort()로만 처리하면 배열요소를 문자로 받아들여 정렬이 위와 같이 이상하게 처리됩니다.

- 그래서 숫자 정렬은 sort()의 콜백함수를 매개변수로 사용하여 작성해주세요.

 

 

 

 

 

 

 

 

728x90
반응형