代码之家  ›  专栏  ›  技术社区  ›  Code Guy

将数组元素与要放置在末尾的指定元素联接

  •  0
  • Code Guy  · 技术社区  · 3 年前

    我有一个数组

    input = ["Hi","Bye","Hello","Jose","Juan",null,"How","","Disco"]
    

    我希望总是将单词“Bye”放在连接字符串的末尾

    input.filter(Boolean).join("@"))
    

    预期产量

    "Hi@Hello@Jose@Juan@How@Disco@Bye"
    

    0 回复  |  直到 3 年前
        1
  •  0
  •   Barmar    3 年前

    使用与比较的筛选函数 Bye 在执行布尔测试之后。

    然后追加 @Bye 直到结果的最后。

    input = ["Hi", "Bye", "Hello", "Jose", "Juan", null, "How", "", "Disco"];
    console.log(input.filter(s => s && s != 'Bye').join("@") + '@Bye');
        2
  •  0
  •   DecPK    3 年前

    1) Filter input 不是 empty null 和过滤器一起,您可以计算 Bye 再见 )

    2. )创建一个只包含 使用 Array.from 并将其附加到过滤后的数组之后。

    然后,你终于可以 join

    const input = ["Hi", "Bye", "Hello", "Jose", "Juan", null, "How", "", "Disco"];
    
    let length = 0;
    
    const result = input
      .filter((s) => {
        if (s === "Bye") ++length;
        return s && s !== "Bye";
      })
      .concat(Array.from({ length }, () => "Bye"))
      .join("@");
    
    console.log(result);
        3
  •  0
  •   pilchard    3 年前

    分类 Bye 到底是什么?

    const input = ['Hi', 'Bye', 'Hello', 'Jose', 'Juan', null, 'How', '', 'Disco'];
    
    const output = input
      .filter(Boolean)
      .sort((a, b) => (a === 'Bye') - (b === 'Bye'))
      .join('@');
    
    console.log(output);
        4
  •  -1
  •   Lance Kind    3 年前

    如果它是一个字符串,那么获得结果的一种方法是

    const outputString=input.filter(Boolean).join("@"))+"@bye"