javascript - array.prototype.sort 目前有不同的顺序?
问题描述
这是我的代码:
let arr = [
{ a: false, index: 1 },
{ a: true, index: 2 },
{ a: false, index: 3 },
{ a: true, index: 4 },
{ a: true, index: 5 },
]
arr.sort((a, b) => a.a && !b.a ? 1 : -1)
在 Chrome 中,返回
[
{a: false, index: 1},
{a: false, index: 3},
{a: true, index: 2},
{a: true, index: 4},
{a: true, index: 5},
]
这是我的目标结果。
但我在 Safari 中找到了相同的代码:
[
{a: false, index: 3},
{a: false, index: 1},
{a: true, index: 5},
{a: true, index: 4},
{a: true, index: 2},
]
他们有不同的结果?
毕竟我是这样解决这个问题的:
arr.sort(
(a, b) =>
!a.a && b.a
? -1
: a.a === b.a
? 0
: 1
)
我无法获得差异?
解决方案
浏览器有不同的实现sort
。如果您想要的话,请使用另一个排序/过滤器对其进行更多组织或更改您当前的排序功能以考虑索引。
推荐阅读
- kubernetes - 使用 kustomize 修补 kubernetes cronjob
- android - 将动态 id 设置为帖子正文
- asp.net - 子类未从视图返回到控制器
- excel - 使用 VBA 映射 SharePoint 驱动器
- django - Django:当我尝试从我的数据库中删除一个对象时,为什么我得到 404?
- java - 序列化与 toString()
- conv-neural-network - cnn提取特征使用svm图像分类的问题
- kubernetes - 来自 pod 的 curl 成功,但 restTemplate 调用在 Spring Boot 应用程序中提供连接 TimeOut
- android - 如何以与kotlin中的firebase数据库相同的顺序保存大型arrayList?
- python - opencv 由 cmake 和 cuda 构建,一个构建 python 工作,但 c++ 没有