2017-04-25 69 views
0

我不知道answerArray[i]中的[i]是做什么/手段。如果有人能够解释它的作用,这将意味着很多。此代码来自书“JavaScript的孩子”和我想上手只是任何一种编码JS for Kids Hang子手游戏

var words = [ 
"money", 
"pillow", 
"maracas" 
]; 

var word = words[Math.floor(Math.random() * words.length)]; 

var answerArray = []; 

这里

for (var i = 0; i < word.length; i++) { 
*answerArray[i] = "_";* 
} 

var remainingLetters = word.length; 

while (remainingLetters > 0) { 
alert(answerArray.join(" ")); 
var guess = prompt("Guess a letter, or click cancel to stop playing."); 
if (guess === null) { 
break; 
} else if (guess.length !== 1) { 
alert("Please enter a single letter."); 
} else { 

这里

*for (var j = 0; j < word.length; j++) { 
if (word[j] === guess) { 
answerArray[j] = guess;* 
remainingLetters--; 
} 
} 
} 
} 

alert(answerArray.join(" ")); 
alert("Good job! The answer was " + word); 
+0

阅读https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array – j08691

+0

它通过索引引用数组项。例如,如果你有'var fruits = ['Apples','Bananas','Oranges']'这样的数组,''var myFruit = fruits [1]'它将被设置为“Bananas”。 (数组是0索引,所以0是第一项,依此类推)。通过循环,每次增加'i' - 因此'array [i]'循环遍历数组中的每个项目。考虑对数组进行一些基本的研究 - 它们是关于每种编程语言的基本编程知识,因此有大量文档(例如发布的资源@ j08691)。 – Santi

回答

0

这里是举例

https://www.w3schools.com/js/tryit.asp?filename=tryjs_loop_for_ex

字母ij或任何东西放在那个槽里,当你写for (i = 0; i < 5; i++)代表当前itteration。这就是所谓的for loop,如果你刚刚开始使用javascript,你一定要了解它。

简而言之,该字母表示循环的当前循环。

for (i = 0; i < 5; i++) { } 

这个循环说的是第一个i = 0。变量“i”是0.然后它说i < 5。这部分是“测试”。如果测试通过,循环再次运行。然后它说i++。这是循环运行后发生的事情。在这个例子中,它增加了i,1。

{ }内部会发生5次,并且字母i将增加值,代表“当前循环”。

在我链接的演示,你看到这句话“的个数为X”出现在递增的顺序,以0

开始循环基本上意味着“虽然我是小于5,这样做”和i每个循环的值增加,()内的测试重新运行。

在数组中,每个插槽都由一个数字表示。 MyArray[1]引用数组中的第二项。 如果您有像这样的阵列var myArray = ["fi", "fa", "fo"]那么您可以编写console.log[2]来打印第三个项目。

让我们结合这样的知识吧!

var myArray = ["fi", "fa", "fo"]; 

for (i = 0; i < 3; i++) { 
    alert(myArray[i]); 
} 

的for循环运行3次,每次运行时,i有一个更大的值。这让我们引用数组中的每个项目。编写一个更好的循环将是for(var i = 0; i < myArray.length; i++。这使得我们将i与您的阵列大小进行比较,因此阵列可以是任何想要的大小

0

1>答案数组最初为空数组= = [];

2>然后words[Math.floor(Math.random() * words.length)]这将从字数组中返回一个 随机字符串。

3>然后for循环只是计数被插入答复阵列存在于 选择的字和_同一时间数的字符数

4>,那么这将只是加入所有的下划线和做一个单一的string(在空间中)。

例如 - >词 “” 被选择

然后答案阵列= ['_','_','_','_','_','_']

然后answerArray = "_ _ _ _ _ _"(用空格加入)。

谢谢。