Javascript 有人能给我解释一下为什么在这个函数中需要for循环吗?
我对编程比较陌生,今天正在读《雄辩的Javascript》。我遇到了一个与总体范围相关的示例。然而,我更感兴趣的是理解它们提供的功能中的所有元素 以下是函数:Javascript 有人能给我解释一下为什么在这个函数中需要for循环吗?,javascript,loops,Javascript,Loops,我对编程比较陌生,今天正在读《雄辩的Javascript》。我遇到了一个与总体范围相关的示例。然而,我更感兴趣的是理解它们提供的功能中的所有元素 以下是函数: var landscape = function () { var result = ""; var flat = function (size) { for (var count = 0; count < size; count++) result += "_"; }
var landscape = function () {
var result = "";
var flat = function (size) {
for (var count = 0; count < size; count++)
result += "_";
};
var mountain = function (size) {
result += "/";
for (var count = 0; count < size; count++)
result += "'"
result += "\\"
};
flat(3);
mountain(4);
flat(6);
mountain(1);
return result;
};
console.log(landscape());
var横向=函数(){
var结果=”;
var扁平=功能(大小){
对于(变量计数=0;计数<大小;计数++)
结果+=”;
};
var=功能(大小){
结果+=“/”;
对于(变量计数=0;计数<大小;计数++)
结果+=“'”
结果+=“\\”
};
单位(3);;
山区(4);
公寓(6);
山区(1);
返回结果;
};
log(横向());
当我试图分解这个函数时,除了for循环外,我基本上了解了所有内容。我不知道为什么这个函数需要它们,我想知道是否有人愿意为我解决这个问题,并解释为什么我们需要循环来使函数正常工作 现在您将获得输出:
___/''''\______/'\
如果没有它们,您将得到两个如下所示的函数(简化):
因此,您将获得输出
_/'\_/'\
flat()
的size
参数定义了应该输出多少个下划线,而mountain
的size
参数定义了应该输出多少个单引号(”
)
因此,你需要环路,否则你会得到更小的山脉和平原
考虑以下“图纸”,其中F
为“平面”,M
为“山”:
每个山的长度始终至少为3个字符(因为它输出一个正斜杠,至少一个”
,然后是一个反斜杠)。这意味着上述输出是(与代码一起)
重申:
// define an anonymous function with a "size" parameter and save it as "flat"
var flat = function (size) {
// start "count" at 0 (count = 0) and add 1 to "count" (count++) while "count" is less than "size" (count < size)
for (var count = 0; count < size; count++) {
// Add an underscore to the "result" variable
result += "_";
}
};
// define an anonymous function with a "size" parameter and save it as "mountain"
var mountain = function (size) {
// Add a forward slash to the "result" variable
result += "/";
// start "count" at 0 (count = 0) and add 1 to "count" (count++) while "count" is less than "size" (count < size)
for (var count = 0; count < size; count++) {
// Add a single quote to the "result" variable
result += "'";
}
// Add a backwards slash to the "result" variable
result += "\\"
};
看起来很奇怪,然后总是考虑这样的单行条件类似于
if (foo) {
bar();
}
oof();
现在您将获得输出:
___/''''\______/'\
如果没有它们,您将得到两个如下所示的函数(简化):
因此,您将获得输出
_/'\_/'\
flat()
的size
参数定义了应该输出多少个下划线,而mountain
的size
参数定义了应该输出多少个单引号(”
)
因此,你需要环路,否则你会得到更小的山脉和平原
考虑以下“图纸”,其中F
为“平面”,M
为“山”:
每个山的长度始终至少为3个字符(因为它输出一个正斜杠,至少一个”
,然后是一个反斜杠)。这意味着上述输出是(与代码一起)
重申:
// define an anonymous function with a "size" parameter and save it as "flat"
var flat = function (size) {
// start "count" at 0 (count = 0) and add 1 to "count" (count++) while "count" is less than "size" (count < size)
for (var count = 0; count < size; count++) {
// Add an underscore to the "result" variable
result += "_";
}
};
// define an anonymous function with a "size" parameter and save it as "mountain"
var mountain = function (size) {
// Add a forward slash to the "result" variable
result += "/";
// start "count" at 0 (count = 0) and add 1 to "count" (count++) while "count" is less than "size" (count < size)
for (var count = 0; count < size; count++) {
// Add a single quote to the "result" variable
result += "'";
}
// Add a backwards slash to the "result" variable
result += "\\"
};
看起来很奇怪,然后总是考虑这样的单行条件类似于
if (foo) {
bar();
}
oof();
正如在另一个答案中所说,for循环用于将字符连接指定的次数。我想指出的是,你不需要for循环来制作你的“平面”和“山脉”
正如在另一个答案中所说,for循环用于将字符连接指定的次数。我想指出的是,你不需要for循环来制作你的“平面”和“山脉”
阅读这本书可能会有帮助吗?和一些一般性的东西。取出循环应该会给你一个我们需要它的提示。我假设这个例子使用
\uu
和/
等创建一个图片。尝试不使用for循环的代码。For循环用于事物的迭代。在这种情况下,需要存储所有这些字符,以便在某种意义上进行叠加并创建一幅图片。Def试验使用和不使用for循环!你应该看到明显的不同!您也可以在控制台中直接在chrome中运行。按ctrl+shift+J组合键阅读可能会有所帮助?和一些一般性的东西。取出循环应该会给你一个我们需要它的提示。我假设这个例子使用\uu
和/
等创建一个图片。尝试不使用for循环的代码。For循环用于事物的迭代。在这种情况下,需要存储所有这些字符,以便在某种意义上进行叠加并创建一幅图片。Def试验使用和不使用for循环!你应该看到明显的不同!您也可以在控制台中直接在chrome中运行。ctrl+shift+J非常感谢您!这个解释很有帮助!非常感谢你!这个解释很有帮助!
var landscape = function () {
var result = "";
var flat = function (size) {
result += Array(size+1).join("_");
};
var mountain = function (size) {
result += "/";
result += Array(size+1).join("'");
result += "\\";
};
flat(3);
mountain(4);
flat(6);
mountain(1);
return result;
};
console.log(landscape());