代码之家  ›  专栏  ›  技术社区  ›  David J.

在Javascript中为排序设置unicode字符的值

  •  0
  • David J.  · 技术社区  · 6 年前

    我试图在JS中按字母顺序对字符串数组排序。有些数组项只是字符串“-”。在按字母顺序的搜索中,这些值通常出现在“a”之前,但我希望“-”出现在末尾。有没有一种方法可以为字符指定一个特定的unicode值,以便您可以自定义排序结果?

    1 回复  |  直到 6 年前
        1
  •  1
  •   T.J. Crowder    6 年前

    通过提供排序回调并检查 "-"

    yourArray.sort((left, right) => {
        if (left === "-") {
            return right === "-" ? 0 : 1;
        }
        return right === "-" ? -1 : left.localeCompare(right);
    });
    

    实例:

    const yourArray = [
      "testing",
      "-",
      "one",
      "-",
      "two",
      "three"
    ];
    yourArray.sort((left, right) => {
        if (left === "-") {
            return right === "-" ? 0 : 1;
        }
        return right === "-" ? -1 : left.localeCompare(right);
    });
    console.log(yourArray);

    更多 on MDN