读书人

大侠们求分析解决思路

发布时间: 2013-07-16 22:38:05 作者: rapoo

大侠们,求分析
<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 测试 函数 数组
[解决办法]

 


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],没有问题的。
[解决办法]
楼主只是没弄懂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版主,我观察了一段时间,很有一手
这个能不能得到他真传,就看你自己的造化了。

读书人网 >JavaScript

热点推荐