javascript如何比较?

How does javascript do the comparison?

我有一个对象数组,每次创建新用户时都会获取新值。我需要根据人名进行一些搜索,然后对其进行一些操作,我在我的代码中实现了二进制搜索,这是我在互联网上找到的,但是搜索代码有些问题困扰着我。

对象看起来如下:

person = {
      name: name,
      password: password,
      cartItems: '',
      cartPrice: 0
}

然后我将它推送到一个数组。

二进制搜索代码如下所示:

searchValues(users, value) {
    var startIndex = 0,
        stopIndex = users.length,
        middle = Math.floor((stopIndex + startIndex) / 2);

    while(users[middle].name != value && startIndex < stopIndex){
      //adjust search area
      if (value < users[middle].name) {
          stopIndex = middle - 1;
      } else if (value > users[middle].name) {
          startIndex = middle + 1;
      }
      //recalculate middle
      middle = Math.floor((stopIndex + startIndex) / 2);
    }

    return (users[middle].name != value) ? -1 : middle;
}

我的问题是:JavaScript如何比较字符串值,是否转换为ascii?如果将其应用于数字,我可以理解代码,但是当涉及到字符串时,我有点困惑。

提前感谢任何愿意提供帮助的人

编辑:我忘了说我已经预先对数组进行了排序。

比较两个字符串的算法很简单:

  1. 比较两个字符串的第一个字符。
  2. 如果第一个字符串的第一个字符大于(或小于)另一个字符串的字符,则第一个字符串大于(或小于)第二个字符串。我们完成了。
  3. 否则,如果两个字符串的第一个字符相同,则以相同的方式比较第二个字符。
  4. 重复直到任一字符串结束。
  5. 如果两个字符串的结尾长度相同,则它们相等。否则,字符串越长越大。 参考 find more detail here