본문 바로가기
공부/자바스크립트 jQuery

중첩배열

by Ohming 2012. 1. 8.
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.
C나 자바로 코딩을 할때는 이차원배열을 사용했었던 것 같은데

자바스크립트 책에서 중첩 배열(nested array) 을 보니까 어디서 본 것 같으면서도 낯설었다.
 <script type="text/javascript">
    var score = 0;
    var questions = [
        ['질문',답],
        ['질문',답],
        ['금성의 위성은 몇 개일까요?', 0]
    ];
</script>
이런식으로 질문과 정답을 포함한 배열을 하나 만들고, questions 배열에 하나의 원소로서 저장을 할 수 있었다.

사용할때는 prompt로 물어봐서 질문에 맞는 답을 썼는지 확인할 것인데
최종예제는 이렇게 된다.
<script type="text/javascript">
var score = 0; // initial score is 0
var questions = [
                                 ['How many moons does Earth have?', 1],
                                 ['How many moons does Saturn have?',31],
                                 ['How many moons does Venus have?', 0]
                                ];


//go through the list of questions and ask each one
for (var i=0; i<questions.length; i++) {
    askQuestion(questions[i]);
}

//function for asking question
function askQuestion(question) {
  var answer = prompt(question[0],'');
    if (answer == question[1]) {
        alert('Correct!');
        score++;
    } else {
        alert('Sorry. The correct answer is ' + question[1]);
    }
}  



</script>

먼저 질문 3개를 보여주기 위해 0부터 하는데 그럼 0번째 줄에 있는 문제가 출제된다.
그후 askQuestion에서는 그 줄의 질문을 물은 후 답을 answer 변수에 저장을 하고 두번째 question[1]에 담긴 변수와 같은지 확인을 한다.

책에 이차원배열이란 말이 없어서 아리송 했는데 이거 같다.
음, question[3][2] 이거랑 비슷한 것 같다. 그런데 자바스크립트에서 배열의 크기를 고정하지 않는게 신기했다.
C에서는 고정시키지 않으려면 동적할당을 시켰어야 했는데 이것도 그렇고 자바스크립트는 뭐든 var로 선언하는게 편했다.

내가 이해한건 이런데.... 음, 틀리면 어쩌지.. 으흐

'공부 > 자바스크립트 jQuery' 카테고리의 다른 글

이미지 미리 읽기  (0) 2012.01.17
DOM을 탐색하는 jQuery 함수  (0) 2012.01.17
배열에 원소 추가, 삭제하는 방법  (0) 2012.01.04
자바스크립트 문자를 숫자로  (0) 2012.01.04
자바스크립트는  (0) 2012.01.04

댓글