比较 JavaScript 中的字符串

在 JavaScript 中,两个字符串相等或一个字符串大于另一个字符串是什么意思?JavaScript 的 三等号运算符 === 返回 true 如果两个字符串完全相等,并且 false 否则:

hello === hello; // true
Hello === hello; // false

<> 比较字符串 字典顺序 。 字典顺序本质上是指 字典顺序。
简单来说, a < b 如果第一个字符 a 出现在第一个字符之前 bASCII 表中 ,或者如果 ab 相等并且 a.slice(1) < b.slice(1)

alpha < zeta; // true, because a comes before z
alpha < Zeta; // false, because Z = 90 in ASCII, and a = 97
one < 1; // false, because 1 = 49 in ASCII, and o = 111

octo < okto; // true, because c = 99, and k = 107
a < alpha; // true, because end of string = 0 in ASCII

数组进行排序 字符串

JavaScript 的 Array#sort() 函数 自动按字典顺序排序。

[Zeta, 1, alpha, ].sort(); // [, 1, Zeta, alpha]

Lodash 的 sortBy()函数 只要您对字符串数组进行排序,

_.sortBy([Zeta, 1, alpha, ]); // [, 1, Zeta, alpha]

怎么样 对对象数组进行排序 基于字符串属性 这 Array#sort() 函数接受一个 回调 参数,该参数接受 2 个值 ab,并且应该返回:

  • 0 如果 ab相等
  • 如果是正数 a > b
  • 如果是负数 a < b

给定一个对象数组 lastName 属性,下面是对数组进行排序的一种方法 lastName

const characters = [
  { firstName: Jean-Luc, lastName: Picard, rank: Captain, age: 59 },
  { firstName: Will, lastName: Riker, rank: Commander, age: 29 },
  { firstName: Geordi, lastName: La Forge, rank: Lieutenant, age: 29 }
];

characters.sort((a, b) => {
  if (a === b) {
    return 0;
  }
  return a.lastName < b.lastName ? -1 : 1;
});

// La Forge, Picard, Riker
characters;

更简洁的替代方法是使用 JavaScript 的内置 localeCompare() 功能 。 打电话 a.localeCompare(b) 返回 -1 如果 a < b0 如果 a === b, 和 1 如果 a > b

const characters = [
  { firstName: Jean-Luc, lastName: Picard, rank: Captain, age: 59 },
  { firstName: Will, lastName: Riker, rank: Commander, age: 29 },
  { firstName: Geordi, lastName: La Forge, rank: Lieutenant, age: 29 }
];

characters.sort((a, b) => a.lastName.localeCompare(b.lastName));

// La Forge, Picard, Riker
characters;
© 版权声明
THE END
喜欢就支持一下吧
点赞93 分享
评论 抢沙发

请登录后发表评论

    请登录后查看评论内容