Javascript 如何将星星和数字组合成一个金字塔,形成一个单一的图案

Javascript 如何将星星和数字组合成一个金字塔,形成一个单一的图案,javascript,Javascript,需要一个有数字和星星的金字塔,没有例子可以回顾 * * 0 * * 1 0 1 * * 0 1 0 1 0 * * 1 0 1 0 1 0 1 * 我能得到一些帮助吗 这是我有的,但我不知道怎么把数字放进去 功能显示金字塔{ 对于设i=0;i

需要一个有数字和星星的金字塔,没有例子可以回顾

        *
      * 0 *
    * 1 0 1 *
  * 0 1 0 1 0 *
* 1 0 1 0 1 0 1 *
我能得到一些帮助吗

这是我有的,但我不知道怎么把数字放进去

功能显示金字塔{ 对于设i=0;i让k=1;k你可以做这样的事情,但是如果中间是0或1,将取决于你提供的数量。 功能构建{ 设网格= 设总=n*2; 对于设i=0;i结束行。按“”; 否则{ 如果j==开始行,则按“*”; 如果j==结束行,则按“*”; else row.pushj%2==0?1:0 } } 网格+=行。连接+'\n' } 返回网格; } console.logbuild3 console.logbuild6
控制台。LogBuffd9你可以这样做,但是如果中间的是0或1,将取决于你提供的数字。 功能构建{ 设网格= 设总=n*2; 对于设i=0;i结束行。按“”; 否则{ 如果j==开始行,则按“*”; 如果j==结束行,则按“*”; else row.pushj%2==0?1:0 } } 网格+=行。连接+'\n' } 返回网格; } console.logbuild3 console.logbuild6
console.logbuild9以下是获得预期结果的思考过程:

所有索引为偶数的行称为“偶数行”0、2、4、6、

所有索引不均匀的行称为“不均匀行”1、3、5、7、

所有星星都是任何一行中的第一列或最后一列

对于所有偶数行,偶数索引显示0,不均匀索引显示1

对于所有非均匀行,非均匀索引显示0,偶数索引显示1

我添加了一个名为getSymbol的函数,它执行最后三次检查并返回相应的符号。为了更好的可读性,我还重命名了迭代器变量

函数getSymbolcolumn,max,row{ 如果列===0 | |列===max-1{//如果它是行中的第一个或最后一个索引 返回'*' } 如果行%2===0{//如果它是一个不均匀的行 如果列%2==0{//如果它是偶数列 返回“0”; } 返回“1”//如果该行中的列不均匀 } //如果不是平局,那就是不平局 如果列%2==0{//如果它是该行中的偶数列 返回“1”; } 返回“0”//如果该行中的列不均匀 } 功能显示金字塔{ 对于let row=0;row以下是获得预期结果的思考过程:

所有索引为偶数的行称为“偶数行”0、2、4、6、

所有索引不均匀的行称为“不均匀行”1、3、5、7、

所有星星都是任何一行中的第一列或最后一列

对于所有偶数行,偶数索引显示0,不均匀索引显示1

对于所有非均匀行,非均匀索引显示0,偶数索引显示1

我添加了一个名为getSymbol的函数,它执行最后三次检查并返回相应的符号。为了更好的可读性,我还重命名了迭代器变量

函数getSymbolcolumn,max,row{ 如果列===0 | |列===max-1{//如果它是行中的第一个或最后一个索引 返回'*' } 如果行%2===0{//如果它是一个不均匀的行 如果列%2==0{//如果它是偶数列 返回“0”; } 返回“1”//如果该行中的列不均匀 } //如果不是平局,那就是不平局 如果列%2==0{//如果它是该行中的偶数列 返回“1”; } 返回“0”//如果该行中的列不均匀 } 功能显示金字塔{ 对于let row=0;row 第一排我们没有Inner char 第二行以内部字符0开头 第三行以内部字符1开始,然后交替显示 第四行以内部字符0开始,然后交替 我们注意到一种模式,如果从零开始,偶数行或奇数行从0开始,反之亦然。交替模式应该提示我们循环的数组

要提出的主要意见如下:

第一排我们没有Inner char 第二行以内部字符0开头 第三行以内部字符1开始,然后交替显示 第四行以内部字符0开始,然后交替
我们注意到一种模式,如果从零开始,偶数行或奇数行从0开始,反之亦然。交替模式应该提示我们循环的数组。

我不确定您是否需要空格,或者是否要更改树中的字符,所以我将它们作为参数添加

如果希望数组中有2个以上的元素,并且第一个元素位于中间,则可以在每一行上移动数组,而不是将其反转

函数显示棱锥体、字符、带空格{ 让charArrayOrdered=charArray 对于设i=0;i对于let k=0;k我不确定是否需要空格,或者是否要更改树中的字符,因此我将它们添加为参数

如果希望数组中有2个以上的元素,并且第一个元素位于中间,则可以在每一行上移动数组,而不是将其反转

函数显示棱锥体、字符、带空格{ 让charArrayOrdered=charArray 对于设i=0;i对于let k=0;k让我们首先尝试只为金字塔的一行编写函数,任何一行。我们现在也将忽略空白

金字塔的每一行似乎都遵循一些简单的规则:

所有行都以*开头。 “内部序列”只是交替1和0一定次数。 每行的内部序列中有2*n-1位,第一位除外。 偶数行0、2、4……以1开始内部序列。 奇数行1、3、5…以0开始内部序列。 除第一行外,所有行都以附加的*结尾。 在上面的规则中,一切都可以从n确定。因此我们的函数只需要一个参数:

功能GetLinen{ // ... } 我们还可以确定一行是偶数还是奇数,以及内部序列有多少个字符:

EvenLine = (n % 2 == 0);
Count = 2*n - 1;
在两颗星之间建立序列可以通过一个简单的for循环来完成

把这些放在一起,我们可以构建以下函数

功能GetLinen{ //为以星形开头的行创建字符串 var行=*; //确定该行是偶数还是奇数 var EvenLine=n%2==0; //计算行中1和0的总数 变量计数=2*n-1; //我们需要一个变量来存储下一个字符是1还是0 var One=EvenLine?true:false;//偶数行以1开头,奇数行以0开头 //重复“计数”次数,在1和0之间交替
对于var i=0;i让我们首先尝试只为金字塔的一行编写函数,任何一行。我们现在也将忽略空白

金字塔的每一行似乎都遵循一些简单的规则:

所有行都以*开头。 “内部序列”只是交替1和0一定次数。 每行的内部序列中有2*n-1位,第一位除外。 偶数行0、2、4……以1开始内部序列。 奇数行1、3、5…以0开始内部序列。 除第一行外,所有行都以附加的*结尾。 在上面的规则中,一切都可以从n确定。因此我们的函数只需要一个参数:

功能GetLinen{ // ... } 我们还可以确定一行是偶数还是奇数,以及内部序列有多少个字符:

EvenLine = (n % 2 == 0);
Count = 2*n - 1;
在两颗星之间建立序列可以通过一个简单的for循环来完成

把这些放在一起,我们可以构建以下函数

功能GetLinen{ //为以星形开头的行创建字符串 var行=*; //确定该行是偶数还是奇数 var EvenLine=n%2==0; //计算th中1和0的总数 e线 变量计数=2*n-1; //我们需要一个变量来存储下一个字符是1还是0 var One=均衡线?真:假;//偶数行从1开始,奇数行从0开始 //重复“计数”次数,在1和0之间交替 对于var i=0;我 常数行=5; 常量列=2*行-1; //创建一个充满 常量数组=Arrayrows.fill.map=>Arraycolumns.fill; //如果r和c是数组的行和列索引,则 //每行放置两个问号,其中c=行-1±r如果r为0,则只有一个星号 //对于列-1-r和行-1+r之间的所有元素,如果c是奇数,则交替使用1;如果c是偶数,则交替使用0 const pyramid=array.mapfunctionrow,r{ 返回row.mapfunctionv,c{ 返回c==rows-1-r | c==rows-1+r?*:c>rows-1-r&&crow.map v,c=>c==rows-1-r | | c==rows-1+r?*:c>行-1-r&&c<行-1+r?c%2==1?1:0:v 常数行=5; 常量列=2*行-1; //创建一个充满 常量数组=Arrayrows.fill.map=>Arraycolumns.fill; //如果r和c是数组的行和列索引,则 //每行放置两个问号,其中c=行-1±r如果r为0,则只有一个星号 //对于列-1-r和行-1+r之间的所有元素,如果c是奇数,则交替使用1;如果c是偶数,则交替使用0 const pyramid=array.mapfunctionrow,r{ 返回row.mapfunctionv,c{ 返回c==rows-1-r | c==rows-1+r?*:c>rows-1-r&&c//const pyramid=array.map行,r=>row.map v,c=>c==rows-1-r | | c==rows-1+r?*:c>行-1-r&&c<行-1+r?c%2==1?1:0:v不久前,我创建了一个简单的repl,它打印一个类似的金字塔。当我完成时,我决定将这个微不足道的程序扩展到一个拥有大量类和抽象的庞大应用程序中。你知道,只是为了好玩:D不幸的是,我还没有完成它,但它仍然过于复杂,所以我会说任务失败了:D给你,也许你会利用它:。干杯不久前,我创建了一个简单的repl,它打印了一个类似的金字塔。当我完成时,我决定将这个微不足道的程序扩展到一个拥有大量类和抽象的庞大应用程序中。你知道,只是为了好玩:D不幸的是,我还没有完成它,但它仍然过于复杂,所以我会说任务失败了:D给你,也许你会利用它:。干杯
EvenLine = (n % 2 == 0);
Count = 2*n - 1;
console.log(GetLine(0));
console.log(GetLine(1));
console.log(GetLine(2));

*
*0*
*101*
printPyramid(5);


        *
      * 0 *
    * 1 0 1 *
  * 0 1 0 1 0 *
* 1 0 1 0 1 0 1 *