본문 바로가기

웹언어/JAVASCRIPT

[JS강좌] 6강 자바스크립트 반복문 - 배열과 for in문 - 오쌤의 니가스터디

728x90
반응형

 

 

 

 

 

 

 

 

 

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

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

 

 

 

 

 

 

 

 

1. 배열

- 배열이란 여러 값을 나열해서 단일변수에 담아주는 것입니다.

 

 

 

1) 배열의 선언

var 배열명 = [값1, 값2, 값3, ...];

- 위에서는 배열명이라고 적었지만 결국 변수입니다. 

- 값을 여러 개를 담을 수 있는 특수 변수라고 생각하면 될것 같습니다. 

 

 

var 배열명 = [
      값1,
      값2,
      값3
];

- 값이 길게 표현되는 경우에는 두번째처럼 작성하면 좋습니다.

- 보통 배열값에 배열이나 객체를 또 적는 경우가 그렇습니다.

 

 

var 배열명 = new Array(값1, 값2, 값3, ...);

- 위와 같이 new키워드를 사용해서 객체를 새로 선언할 수도 있습니다.

- 이 방법은 추후 기본내장객체시간에 다시 자세히 배우도록 하겠습니다.

 

 

 

 

 

 

 

 

 

 

 

 

2) 배열의 호출

a) 전체 호출

## 문법

배열명;

 

## 예시 코드

<!DOCTYPE html>
<html lang="ko">
    <head>
        <meta charset="UTF-8">
        <title>JS 배열과 for in문</title>
        <script>            
            var ss = ['윤아','태연','수영','티파니','유리','효연','써니','서현','제시카'];
            
            alert('소녀시대 멤버 : ' + ss);
        </script>
    </head>
    <body>
        
    </body>
</html>

- 소녀시대 멤버들로 예시를 들어보았습니다.

 

 

## 결과

 

 

 

 

 

 

 

b) 일부값 호출

## 문법

배열명[인덱스번호];

 

## index번호란?

- 각각의 배열값이 배당받는 번호를 의미합니다.

- 위와 같이 0번부터 위치값을 배당을 받습니다.

 

 

 

## 일부 값 호출 코드

<!DOCTYPE html>
<html lang="ko">
    <head>
        <meta charset="UTF-8">
        <title>JS 배열과 for in문</title>
        <script>            
            var ss = ['윤아','태연','수영','티파니','유리','효연','써니','서현','제시카'];
            
            alert('소녀시대 멤버 : ' + ss);
            
            //태연솔로
            alert(ss[1]);
            
            //태티서
            alert(ss[1] + ss[3] + ss[7]);
        </script>
    </head>
    <body>
        
    </body>
</html>

- 첫번째는 태연만 호출합니다. 2번째 있으므로 인덱스번호인 1로 호출합니다.

- 두번째는 태연,티파니,서현을 호출합니다. 각각의 인덱스 번호인 1번, 3번, 7번으로 호출합니다.

 

 

## 결과

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3) 배열의 length속성

## 문법

배열명.length;

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

 

 

 

## 코드

<!DOCTYPE html>
<html lang="ko">
    <head>
        <meta charset="UTF-8">
        <title>JS 배열과 for in문</title>
        <script>            
            var ss = ['윤아','태연','수영','티파니','유리','효연','써니','서현','제시카'];
            
            alert('소녀시대 멤버수 : ' + ss.length + '명');
        </script>
    </head>
    <body>
        
    </body>
</html>

 

 

 

## 결과

- 값의 개수인 9개를 반환합니다.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3) 배열의 반복

## 반복할 개수를 지정한 코드

<!DOCTYPE html>
<html lang="ko">
    <head>
        <meta charset="UTF-8">
        <title>배열과 for in문</title>
        <script> 
            var ss = ['윤아','태연','수영','티파니','유리','효연','써니','서현','제시카'];
            
            //멤버 소개
            for(var i=0;i<9;i++){
                alert(ss[i]);
            }
        </script>
    </head>
    <body>
        
    </body>
</html>

- 소녀시대가 9명인 것을 알았기 때문에 for문의 조건식에 9번까지 반복하도록 설정했습니다.

 

 

## 반복할 개수를 지정한 결과

- 반복이 잘 처리됩니다. 

- 하지만 멤버 한명이 빠지면 문제가 일어납니다.

 

 

 

 

 

 

## 값과 반복조건이 맞지 않는 경우 코드

<!DOCTYPE html>
<html lang="ko">
    <head>
        <meta charset="UTF-8">
        <title>배열과 for in문</title>
        <script> 
            var ss = ['윤아','태연','수영','티파니','유리','효연','써니','서현'];
            
            //멤버 소개
            for(var i=0;i<9;i++){
                alert(ss[i]);
            }
        </script>
    </head>
    <body>
        
    </body>
</html>

- 마지막에 있던 제시카가 빠진 코드입니다.

- 하지만 반복 조건은 여전히 9입니다.

 

 

 

## 값과 반복조건이 맞지 않는 경우 결과

- 마지막에 개수가 안맞아서 [undefined]라는 결과가 나오는 것을 확인할 수 있습니다.

 

 

 

 

## 오류가 없는 코드

<!DOCTYPE html>
<html lang="ko">
    <head>
        <meta charset="UTF-8">
        <title>배열과 for in문</title>
        <script> 
            var ss = ['윤아','태연','수영','티파니','유리','효연','써니','서현','제시카'];
            
            //멤버 소개
            for(var i=0;i<ss.length;i++){
                alert(ss[i]);
            }
        </script>
    </head>
    <body>
        
    </body>
</html>

- [배열명.length]는 배열의 개수를 반환하기 때문에 마지막 배열번호는 개수-1입니다. 

- 그래서 0번부터 그 개수전까지로 해놓으면 멤버중 누군가가 나간다고 하더라도 for문을 고칠 필요가 없습니다.

- 이렇게 자바스크립트는 추후에 코드를 많이 고치지 않도록 작성하는 것이 좋습니다.

 

 

## 오류가 없는 결과

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2. for in문

- 자바스크립트도 언어가 발전되면서, 필요한 언어들이 계속 변경되거나 추가되었습니다.

- for in문은 추후에 생긴 구문으로 배열이나, 객체를 반복할 때 사용하는 구문입니다.

 

 

1) 소녀시대 반복하기

 

## 문법

for(var i in 배열명){
	//반복할 표현식
}
for(var i in 객체명){
	//반복할 표현식
}

- 반복하는 횟수는 배열이나 객체가 갖고 있는 값만큼만 반복하게 됩니다.

 

 

 

## 코드

<!DOCTYPE html>
<html lang="ko">
    <head>
        <meta charset="UTF-8">
        <title>배열과 for in문</title>
        <script>
            var ss = ['윤아','태연','수영','티파니','유리','효연','써니','서현','제시카'];
            
            //멤버 소개
            for(var i in ss){ //ss(배열)이 갖고 있는 인덱스번호만큼만 반복
                alert(ss[i]);
            }
        </script>
    </head>
    <body>
        
    </body>
</html>

 

 

## 결과

 

 

 

 

 

 

 

 

 

2) 휴대전화 앞번호 선택상자에 넣기

- 배열은 규칙이 없는 값에 규칙을 주고 싶어서 담습니다.

- [010, 011, 016, 017, 018, 019]를 보면 규칙이 없죠? 이럴때 배열에 담아서 for in문으로 처리해주면 됩니다.

 

 

## 코드

<!DOCTYPE html>
<html lang="ko">
    <head>
        <meta charset="UTF-8">
        <title>배열과 for in문</title>
        <script>
            var first = ['010','011','016','017','018','019'];
            
            var output = '<select>';
            
            //옵션태그 반복
            for(var i in first){ //배열의 인덱스번호만큼 반복
                output += '<option>' + first[i] + '</option>';
            }
            
            output += '</select>';
          
            document.write(output);
        </script>
    </head>
    <body>
        
    </body>
</html>

- 지역번호는 0번부터 시작하는데 숫자는 0번부터 시작할수 없으므로 문자열로 배열에 담아주면 됩니다.

- select태그는 반복하지 않고 한번만 작성하면 되므로 반복문 밖에 작성해줍니다.

- 반복되는 것은 option태그이므로 for in문 내부에는 option태그들을 추가대입해줍니다.

 

 

## 결과

- 반복이 잘되어서 선택상자에 담긴 결과를 확인하실 수 있습니다.

 

 

 

 

 

## 혼자해보기

문제) 지역번호를 선택상자에 담아 body에 출력하시오.
- 변수제공 : var areaCode = ['02','031','032','033','041','042','043','044','051','052','053','054','055','061','062','063','064'];

 

더보기

## 코드

<!DOCTYPE html>
<html lang="ko">
    <head>
        <meta charset="UTF-8">
        <title>배열과 for in문</title>
        <script>
            //지역번호를 선택상자에 담아 body에 출력하시오.
            var areaCode = ['02','031','032','033','041','042','043','044',
            '051','052','053','054','055','061','062','063','064'];
            
            //태그들을 담을 변수
            var output = '<select>';
            
            //옵션태그를 반복문처리
            for(var i in areaCode){
                output += '<option>' + areaCode[i] + '</option>';
            }
            
            output += '</select>';
            
            //문서출력
            document.write(output);
        </script>
    </head>
    <body>

    </body>
</html>

 

 ## 결과

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

728x90
반응형