我该如何修剪三角形内的空间
How do I go about trimming spaces within my triangle
出于某种原因,我无法让 .trim 为我工作。我想也许尝试将我的代码转换为字符串然后 trim 更好,但似乎也不能正确使用 toString 。到目前为止,这是我得到的:
function Pyramid(number) {
if(number>0) {
Pyramid(number-1);
for(let z=9; z>=(number-1); z--) {
document.write(" ");
};
for(let j=1; j<=number; j++) { //12345
document.write(" "+j);
};
for(let k=number-1; k>0; k--) { // 54321
document.write(" "+k);
};
};
document.write("<br>");
};
Pyramid(5);
document.body.style.fontFamily = "monospace";
function myFunction() {
var n = Pyramid(5).toString();
document.write(n);
};
myFunction();
document.write(myFunction.trim());
如果有人能解决这个问题,让它最长的线触摸屏幕的左侧也很好,可能需要从左侧开始 trim 个空格,但担心我会毁了金字塔形状。
您的第一个循环似乎是您打印初始空格集的问题的根本原因。金字塔的大小可以是可变的,当大小小于 9 时,硬编码数字 9 将导致不需要的空间。
一个简单的work-around就是打印空格的时候要记住金字塔的大小。您可以通过一个简单的包装函数来实现这一点,该函数将初始大小作为第二个参数提供给您的递归函数。
function Pyramid(number) {
buildPyramid(number, number);
}
function buildPyramid(currentVal, size) {
if (currentVal > 0) {
buildPyramid(currentVal - 1, size);
for (let z = size; z > currentVal; z--) {
document.write(" ");
}
for (let j = 1; j <= currentVal; j++) {
document.write(" " + j);
}
for (let k = currentVal - 1; k > 0; k--) {
document.write(" " + k);
}
}
document.write("<br>");
}
Pyramid(5);
document.body.style.fontFamily = "monospace";
出于某种原因,我无法让 .trim 为我工作。我想也许尝试将我的代码转换为字符串然后 trim 更好,但似乎也不能正确使用 toString 。到目前为止,这是我得到的:
function Pyramid(number) {
if(number>0) {
Pyramid(number-1);
for(let z=9; z>=(number-1); z--) {
document.write(" ");
};
for(let j=1; j<=number; j++) { //12345
document.write(" "+j);
};
for(let k=number-1; k>0; k--) { // 54321
document.write(" "+k);
};
};
document.write("<br>");
};
Pyramid(5);
document.body.style.fontFamily = "monospace";
function myFunction() {
var n = Pyramid(5).toString();
document.write(n);
};
myFunction();
document.write(myFunction.trim());
如果有人能解决这个问题,让它最长的线触摸屏幕的左侧也很好,可能需要从左侧开始 trim 个空格,但担心我会毁了金字塔形状。
您的第一个循环似乎是您打印初始空格集的问题的根本原因。金字塔的大小可以是可变的,当大小小于 9 时,硬编码数字 9 将导致不需要的空间。
一个简单的work-around就是打印空格的时候要记住金字塔的大小。您可以通过一个简单的包装函数来实现这一点,该函数将初始大小作为第二个参数提供给您的递归函数。
function Pyramid(number) {
buildPyramid(number, number);
}
function buildPyramid(currentVal, size) {
if (currentVal > 0) {
buildPyramid(currentVal - 1, size);
for (let z = size; z > currentVal; z--) {
document.write(" ");
}
for (let j = 1; j <= currentVal; j++) {
document.write(" " + j);
}
for (let k = currentVal - 1; k > 0; k--) {
document.write(" " + k);
}
}
document.write("<br>");
}
Pyramid(5);
document.body.style.fontFamily = "monospace";