<html>
<head>
<script type="text/javascript">
var score = 0; 
var questions = [
 ['How many moons does Earth have?', 1],
 ['How many moons does Saturn have?',31],
 ['How many moons does Venus have?', 0]
];
for (var i=0; i<questions.length; i++) {
askQuestion(questions[i]);
}
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>
</head>
<body></body>
</html>
首先小弟理解红色部分为数组(应该是这么理解吧?),蓝色部分将其分别提取出来,可是绿色部分我就不懂了,下面是我的分析:
一共3次提取
第1次提取
questions[0]也就是How many moons does Earth have?', 1
function askQuestion(question)也就是等同于function askQuestion(How many moons does Earth have?', 1)
 {  var answer = prompt(question[0],'');这个是否等同于var answer = prompt(How many moons does Earth have?', 1,'') 好吧我凌乱了,怎么有2个","呢?answer应该是取我输入的值吧,那1岂不是多余的?
if (answer == question[1])这个question[1]是应该想测试answer是否等于1,可是 question[1]应该是取How many moons does Saturn have?,31 这里面的31才对啊,因为question[1]代表取question中的第二个数组才对啊,对此我都不知道他怎么却是能对上1,
同时我和我的小伙伴都惊呆了,已经彻底崩溃分析不出第二次和第三次提取了,恳请大神能来解释一下。本人自学javascript,因此也非常辛苦,总是边练边学习,如有人肯指导,请加Q394758764,万分感谢JavaScript测试函数数组

解决方案 »

  1.   

    从单词命名上讲:questions 和question是不一样的,一个带s,是复数形式,一个是单数,questions是question的集合。从数据结构上讲:questions是二维数组,questions的长度是3,表示有3个问题,question = quesions[0];则question表示第一个问题, 每个问题又是一个数组,一共有两个元素,即提问和正确答案。
      

  2.   


    function askQuestion(question) {
      var answer = prompt(question[0],'');
      if (answer == question[1]) {
        alert('Correct!');
        score++;
      } else {
        alert('Sorry. The correct answer is ' + question[1]);
      }
    }  
    askQuestion接受的参数是具体的某个question,因此,弹出问题应该用[0],比较答案用[1],没有问题的。
      

  3.   

    首先从askQuestion(questions[i]);这句分析参数是依次传入的,不是一起传入的第一次['How many moons does Earth have?', 1]
    第二次['How many moons does Saturn have?',31]
    第三次['How many moons does Venus have?', 0]第一次的['How many moons does Earth have?', 1]这个是questions[0]而第一次question[0]注意这里是question没有s了question[0]为'How many moons does Earth have?'
    question[1]为1所以你的这句理解
     {  var answer = prompt(question[0],'');这个是否等同于var answer = prompt(How many moons does Earth have?', 1,'')
    是错误的
      

  4.   

    楼主只是没弄懂questions和question而已把这两理解,这段函数就明白了三次questions[i]分别是
    第一次['How many moons does Earth have?', 1]
    第二次['How many moons does Saturn have?',31]
    第三次['How many moons does Venus have?', 0]三次question[0]分别是
    第一次'How many moons does Earth have?'
    第二次'How many moons does Saturn have?'
    第三次'How many moons does Venus have?'三次question[1]分别是
    1
    31
    0楼主天资聪颖,一定能够理解PS这里的高手基本不会加QQ他们都是神龙见首不见尾
    那个showbo版主,我观察了一段时间,很有一手
    这个能不能得到他真传,就看你自己的造化了。
      

  5.   


    恩恩,非常感谢啊,是被二维数组迷糊了,那两个question也很厉害啊,辛苦了,感谢这么认真的回答。