为什么我必须制作一个单独的变量来纠正这个循环? (Javascript 基础知识)
Why do I have to make a seperate variable to correct this loop? (Javascript Basics)
我正在学习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);
相反,变量 "allFoods" 返回所有不同的变体..
appleswinkies、applespizza、pearstwinkies、pearspizza
它returns 这...
applestwinkies、applestwinkies、pearspizza、梨、披萨
我发现的漏洞是...
>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);
虽然它正在工作。我不知道发生了什么,也不知道它为什么起作用!
你在这行有错误:
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 = ["apples", "pears"];
var junk = ["twinkies", "pizza"];
var allFoods = [];
for (var i = 0; i < fruits.length; i++) {
allFoods.push(fruits[i]);
}
for (var j = 0; j < junk.length; j++) {
allFoods.push(junk[j]);
}
alert(allFoods);
当然,您也可以使用Array object's concat()
method将两个数组合并为一个。
var fruits = ["apples", "pears"];
var junk = ["twinkies", "pizza"];
var allFoods = fruits.concat(junk);
alert(allFoods);
我正在学习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);
相反,变量 "allFoods" 返回所有不同的变体.. appleswinkies、applespizza、pearstwinkies、pearspizza
它returns 这... applestwinkies、applestwinkies、pearspizza、梨、披萨
我发现的漏洞是...
>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);
虽然它正在工作。我不知道发生了什么,也不知道它为什么起作用!
你在这行有错误:
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 = ["apples", "pears"];
var junk = ["twinkies", "pizza"];
var allFoods = [];
for (var i = 0; i < fruits.length; i++) {
allFoods.push(fruits[i]);
}
for (var j = 0; j < junk.length; j++) {
allFoods.push(junk[j]);
}
alert(allFoods);
当然,您也可以使用Array object's concat()
method将两个数组合并为一个。
var fruits = ["apples", "pears"];
var junk = ["twinkies", "pizza"];
var allFoods = fruits.concat(junk);
alert(allFoods);