我想尝试使用基本运算符在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);
所以,我只是想知道,有没有更好的方法来创建数组而不知道如何创建数组变量?
答案 0 :(得分:2)
你的第一个磅符号(金字塔尖端)应该是金字塔底部长度的一半。因此,如果你的基数是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
打印字符。
答案 1 :(得分:1)
这应该有效
var stringBuilder = "";
counter = 0;
signs = "#";
while (counter < 10){
stringBuilder = stringBuilder + signs + "\n";
signs = signs + "#";
counter = counter + 1;
}
alert(stringBuilder);
答案 2 :(得分:1)
以下代码应该有效:
string = "";
counter = 0;
signs = "#";
while (counter < 10){
string = string + signs + "\n";
signs = signs + "#";
counter = counter + 1;
}
alert(string);
主要区别如下:
\n
而不是/n
。string
可以从空开始,因为每次都会附加一个“#”。答案 3 :(得分:1)
换行符是“\ n”而不是“/ n”。 (“逃逸”字符一般是反斜杠而不是正斜杠。)
此外,您输入的拼写错误sings = ...
代替signs = ...
编辑:好的,所以您已更新问题以更正这两个问题。关于新问题:
所以,我只是想知道,有没有更好的方法来创建数组 不知道如何创建数组变量?
听起来你并不真正理解数组变量的含义:数组是一种数据结构,允许您存储由索引选择的数据项。为什么你认为你需要一个阵列来实现这个“金字塔”功能呢?
另外,您可以使用+=
和++
a = a + b;
可缩写为a += b;
a = a + 1;
可缩写为a++;
答案 4 :(得分:0)
这是另一种方法:
<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>
你明白了:
#
###
#####
#######
#########
###########
#############
###############
#################
###################