为什么我必须制作一个单独的变量来纠正这个循环?(Javascript基础)

为什么我必须制作一个单独的变量来纠正这个循环?(Javascript基础),javascript,arrays,loops,counter,Javascript,Arrays,Loops,Counter,我目前正在学习Javascript,所以我会尽我最大的努力选择单词 在下面的代码中。 我希望变量“allFoods”显示所有不同的变量 虽然我发现了一个漏洞,但我喜欢理解逻辑和为什么要做事情,而不是记住代码 >1 var fruits = ["apples", "pears"]; >2 var junk = ["twinkies", "pizza"]; >3 var allFoods = []; for (var i = 0; i < fruits.length; i+

我目前正在学习Javascript,所以我会尽我最大的努力选择单词

在下面的代码中。 我希望变量“allFoods”显示所有不同的变量

虽然我发现了一个漏洞,但我喜欢理解逻辑和为什么要做事情,而不是记住代码

>1 var fruits = ["apples", "pears"]; 
>2 var junk = ["twinkies", "pizza"];
>3 var allFoods = [];
for (var i = 0; i < fruits.length; i++) {
   for (var j = 0; j < junk.length; j++) {
      allFoods = fruits[i] + junk[i];
        alert(allFoods);
>1var-fruits=[“苹果”、“梨”];
>2 var junk=[“twinkies”,“pizza”];
>3 var allFoods=[];
对于(变量i=0;i
相反,变量“allFoods”返回所有不同的变量。。 苹果粉

它返回这个。。。 苹果粉,苹果粉,梨馅饼,梨,比萨饼

我发现的漏洞是

     >1 var fruits = ["apples", "pears"]; 
     >2 var junk = ["twinkies", "pizza"];
     >3 var allFoods = [];
     >4 var b = 0;
     >5 for (var i = 0; i < fruits.length; i++) {
     >6   for (var j = 0; j < junk.length; j++) {
     >7      allFoods[b] = fruits[i] + junk[i];
             b++;
     >8        alert(allFoods);
>1var-fruits=[“苹果”、“梨”];
>2 var junk=[“twinkies”,“pizza”];
>3 var allFoods=[];
>4 var b=0;
>5表示(变量i=0;i6表示(变量j=0;j7所有食品[b]=水果[i]+垃圾[i];
b++;
>8警报(所有食品);

虽然它在工作。我不知道发生了什么,为什么它在工作!

您在这行有一个错误:

  allFoods = fruits[i] + junk[i];
将其更改为:

  allFoods = fruits[i] + junk[j];
                              ^ use index j here

您在这一行有一个错误:

  allFoods = fruits[i] + junk[i];
将其更改为:

  allFoods = fruits[i] + junk[j];
                              ^ use index j here

向数组中添加元素时,可以采用多种方式

var arr = [];
arr.push("One"); // Pushes a new element into the array
arr[1] = "Two"; // Sets a specific element in the array
// arr === ["One","Two"]
加号运算符
+
根据上下文提供不同的功能。与字符串值一起使用时,它将字符串连接在一起。因此
allFoods=fruits[1]+junk[1];
相当于
allFoods=“pearspizza”

您要做的是逐个循环遍历数组,并使用
push
方法将元素附加到新数组中,如以下代码示例所示:

var-fruits=[“苹果”、“梨”];
var junk=[“twinkies”,“pizza”];
var allFoods=[];
对于(变量i=0;i警报(allFoods);
向数组中添加元素时,可以采用多种方法

var arr = [];
arr.push("One"); // Pushes a new element into the array
arr[1] = "Two"; // Sets a specific element in the array
// arr === ["One","Two"]
加号运算符
+
根据上下文提供不同的功能。与字符串值一起使用时,它将字符串连接在一起。因此
allFoods=fruits[1]+junk[1];
相当于
allFoods=“pearspizza”

您要做的是逐个循环遍历数组,并使用
push
方法将元素附加到新数组中,如以下代码示例所示:

var-fruits=[“苹果”、“梨”];
var junk=[“twinkies”,“pizza”];
var allFoods=[];
对于(变量i=0;i警报(allFoods);
请正确设置代码格式。对于初学者,请在上载代码段之前删除所有行号。请正确设置代码格式。对于初学者,请在上载代码段之前删除所有行号。哇……使用“J”索引,我应该使用“allFoods.push()”来使用它函数。这很好,因为现在我知道程序正在做什么以及为什么…但是…为什么它仍然不能使用简单的allFoods=Frients[I]+junk[j]使用所有正确的索引@Mike:这可能是因为您没有向
allFoods
数组中添加任何元素,而是将每个结果依次赋给同一个变量。@Thriggle的答案解决了您问题的这一部分。哇……使用“J”索引,而我应该使用“allFoods.push()”函数。这很好,因为现在我知道程序正在做什么以及为什么…但是…为什么它仍然不能使用简单的allFoods=Frients[I]+junk[j]使用所有正确的索引@Mike:这可能是因为您没有向
allFoods
数组中添加任何元素,而是将每个结果依次赋给同一个变量。@Thriggle的答案解决了您问题的这一部分。