[英]How do arrays work, behind the scenes?
我想我正在尝试使用基本运算符在JavaScript中创建自己的自定义数组。
我正在阅读的本书“ Eloquent JavaScript”在第1章中有一个练习,要求我使用“打印”功能制作金字塔。 我的解释器中都没有打印功能,也没有说如何制作打印功能。 因此,我没有打印功能,并且正在使用警报。
这是代码。
var line = "";
var counter = 0;
while (counter < 10) {
line = line + "#";
print(line);
counter = counter + 1;
}
因此,我尝试使用警报,而不是:
var line = "";
var counter = 0;
while (counter < 10) {
line = line + "#";
alert(line);
counter = counter + 1;
}
但是警报不是三角形。 这是一堆箱子,磅符号的数量每次都会增加。
我想创建一个字符串连接,然后打印出整个结果。
这是我想出的:
string = "";
counter = 0;
signs = "#";
while (counter < 10){
string = string + signs + "\n";
signs = signs + "#";
counter = counter + 1;
}
alert(string);
因此,我只是想知道,在不知道如何创建数组变量的情况下,有没有更好的方法来创建数组?
您的第一个磅符号(金字塔的顶端)的距离应为金字塔底长的一半。 因此,如果您的底边长为10个#号,那么金字塔的顶部应隔开4个空格,然后打印#号。
其次,要制作一个真正的金字塔,您需要自上而下打印,以便第二行逐渐变大。 用奇数思考:
// Example
Tip: 1 char
2nd row: 3 chars
3rd row: 5 chars
4th row: 7 chars
5th row: 9 chars
6th row: 11 chars
等等
您的换行符是错误的。 它应该是\\n
。 如果要打印为HTML,请使用<BR>
。
或者,您可以使用console.log
打印您的字符。
这应该工作
var stringBuilder = "";
counter = 0;
signs = "#";
while (counter < 10){
stringBuilder = stringBuilder + signs + "\n";
signs = signs + "#";
counter = counter + 1;
}
alert(stringBuilder);
下面的代码应该工作:
string = "";
counter = 0;
signs = "#";
while (counter < 10){
string = string + signs + "\n";
signs = signs + "#";
counter = counter + 1;
}
alert(string);
主要区别如下:
\\n
而不是/n
。 string
可以开始为空,因为您每次都会附加一个“#”。 换行符是“ \\ n”而不是“ / n”。 (“转义”字符通常是反斜杠而不是正斜杠。)
另外,您输入的错字是sings = ...
而不是signs = ...
编辑:好的,所以您已经更新了您的问题以纠正这两个问题。 关于您的新问题:
因此,我只是想知道,在不知道如何创建数组变量的情况下,有没有更好的方法来创建数组?
听起来您似乎不太了解数组变量是什么:数组是一种数据结构,可让您存储由索引选择的数据项。 您为什么认为需要一个数组才能使用此“金字塔”功能?
顺便说一句,您的代码可以使用+=
和++
进行改进:
a = a + b;
可以缩写为a += b;
a = a + 1;
可以缩写为a++;
这将是另一种方式:
<script>
string = ""; height = 10;
for(i = 1; i <= height; i++){
string += Array(i).join('#') + '<br>';
}
document.write(string);
</script>
输出:
#
##
###
####
#####
######
#######
########
#########
现在进行一些修改:
<script>
string = ""; height = 10;
for(i = 1; i <= height; i++){
string += Array(height-i+1).join(' ') + Array(2*i).join('#') + '<br>';
}
document.write(string);
</script>
<style>body{font-family:monospace;}</style>
你得到这个:
#
###
#####
#######
#########
###########
#############
###############
#################
###################
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.