代码之家  ›  专栏  ›  技术社区  ›  Dhana

角度模式生成-无法获得所需的输出

  •  1
  • Dhana  · 技术社区  · 11 月前

    我有以下问题,我尝试了几种方法,但仍然得到了以下输出,但我想要的输出是不同的。你们中有谁可以检查一下,让我知道我哪里做错了,以及如何实现所需的输出模式。 我有一个输入数字(n)。输入值应介于2和10之间。我们需要验证输入值是否不在预期范围内。

    我得到以下输出:

    如果我输入n=2:

    A
    
    B C
    

    如果我输入n=3:

    A
    
    B C 
    
    D E F
    

    但我想要的输出如下:

    示例1。 如果我在输入字段中给出n=3,那么我们需要显示以下输出:

    A
    
    A B
    
    C D E
    

    示例2: 如果我在输入字段中给出n=4,那么我们需要显示以下输出:

    A
    
    A B
    
    A B C
    
    D E F G
    

    创建 Stackblitz

    1 回复  |  直到 11 月前
        1
  •  1
  •   Naren Murali    11 月前

    你可以这样改变逻辑。

    首先,我们将字符串拆分为数组。

    然后我们使用 slice 指定开始和结束索引。

    我们调整开始和结束索引以生成所需的输出。

    仅对于最后一个索引,我们从最后一个元素中提取最多n个字符,这将生成与预期相同的输出。

    createSequence(n: number): string[] {
      const alphabet = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
      let sequence: string[] = [];
      let currentCharIndex = 0;
    
      for (let i = 1; i <= n; i++) {
        const alphaArr = alphabet.split('');
        const output = i !== n ? alphaArr.slice(0, i) : alphaArr.slice(i - 1, i + n -1);
        console.log(output);
        sequence.push(output.join(' '));
      }
    
      return sequence;
    }
    

    Stackblitz Demo