当前位置: 首页 > 知识库问答 >
问题:

结果似乎不一致的JavaScript排序

呼延辰龙
2023-03-14

我正在尝试对一个数组进行排序,但是一个值应该优先于所有其他值,这意味着它应该总是出现在排序数组的末尾。

我试着到处玩,试图找到一个合适的排序函数,但偶然发现了我不理解的结果。

你可以看到我的排序函数,在这两种情况下都是完全一样的。根据我的理解,如果a大于B,它应该返回1。a=2的固定返回值难道不应该使2成为“最大”数吗?它似乎对第一个数组起作用,但对第二个数组不起作用,因此结果取决于输入数组。我尝试了很多不同的输入,但我找不到一个模式,它什么时候起作用,什么时候不起作用。

共有1个答案

王楚青
2023-03-14

您应该检查b是否也是2,这会起作用:

null

console.log([5, 4, 3, 2, 1].sort((a, b) => {
  if (a === 2) return 1
  if (b === 2) return -1
  return a - b
}))
 类似资料:
  • 问题内容: 我有以下对象: 我在以下使用它: 现在,树形图用于一个称为的类中,用于存储图形中当前存在的节点以及它们的边集(来自class )。我的问题是当我尝试执行时: 我有时会得到以下信息: 哈希码:true等于:true包含: false N:foo X:foo比较数:0 有人知道我在做什么错吗?我对这一切仍然是陌生的,所以如果我忽略了一些简单的事情,我会事先道歉(我知道这并不重要,但我想我会

  • 我正在尝试运行一个in查询(springboot jpa mysql)。我已经启用了调试日志,查询似乎很好,但是SpringJPA没有返回任何结果。 以下是配置: 这是我的存储库: //或 这里需要注意的是,“in”查询中的列不是主键。 生成的查询:

  • 问题内容: 我有一个实现可运行的线程类和一个int计数器作为实例变量。两种同步方法add和sub。当我以某种方式运行测试类时,它几次会输出错误的结果。据我了解,当方法同步时,整个对象将被锁定以供其他线程访问,这种逻辑每次我们都应该获得相同的结果正确吗?事实并非如此。我想念什么吗? 我的机器是Windows 7、64位。 测试类 结果 注意: 您可能需要进行几次运行才能产生这种不一致。 问题答案:

  • 问题内容: 我正在尝试使用ZGEEV计算特征值和特征向量,但是在以不同的优化级别使用时,输出不正确且不一致也有些麻烦。以下是我的Fortran代码,结果为-O1和-O2优化级别。我还提供了Python代码进行比较。 我只能假设我打错了电话,但是我无法确定如何打电话。我相信我的LAPACK安装不太可能出现问题,因为我已经比较了Windows和Linux上两台不同计算机上的输出。 Fortran代码:

  • 我在我的Github帐户上有一个存储库,我从官方存储库中派生了这个存储库。 然后我在我的本地机器上克隆了它。它工作得很好。我创建了几个分支(在分支下)。我做了几次提交,它工作得很好。 当我这样做时,我不知道我是如何得到以下错误的: 如何在不影响Github上的存储库的情况下解决此错误? 我正在使用 我的<代码>的内容。git/config在执行cat$(git rev parse-show top

  • 问题内容: 如何查询相似度排序的记录? 例如。搜索“库存溢出”将返回 堆栈溢出 SharePoint溢出 数学溢出 政治溢出 视觉特效溢出 例如。搜索“ LO”将返回: 巴勃罗毕加索 米开朗基罗 杰克逊·波洛克 我需要什么帮助: 使用搜索引擎索引和搜索MySQL表,以获得更好的结果 使用Sphinx搜索引擎和PHP 在PHP中使用Lucene引擎 使用全文索引,查找相似/包含的字符串 什么不好 L