gpt4 book ai didi

javascript - Array.sort(comparison Function) 在 Chrome 和 Firefox 中的不同结果

转载 作者:行者123 更新时间:2023-12-05 01:49:39 24 4
gpt4 key购买 nike

我正在使用 anArrayOfObjects.sort((a, b) => a.value - b.value),其中一些对象没有 value 属性.

这会在 Firefox 和 Chrome 中导致不同的结果,其中 Chrome 似乎对没有 value 属性/未定义值的对象进行排序,而 Firefox 不会。

规范没有规定 Chrome 给出的结果,意味着 Firefox 的结果是错误的吗?还是 sort 的那部分结果取决于特定的实现?

const data2 = [
{ 'name' : 'a', 'value' : 5 },
{ 'name' : 'b', 'value' : 2 },
{ 'name' : 'c' },
{ 'name' : 'd', 'value' : 1 }
];

console.log('before sorting: ', data2);

data2.sort((a, b) => a.value - b.value);

console.log('after sorting: ', data2);

最佳答案

两者都不是“错”。

undefined - undefined, undefined - 1 and 1 - undefined 都返回NaN, and NaN 与某物相比总是 false

这两个浏览器之间的差异可能是由于排序实现。
使用的排序算法可以给出不同的结果,具体取决于值的预先顺序,以及实现如何处理 NaN

关于javascript - Array.sort(comparison Function) 在 Chrome 和 Firefox 中的不同结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73854983/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com