gpt4 book ai didi

javascript - JS Array.Sort IE 11 与 Chrome 的差异

转载 作者:行者123 更新时间:2023-11-28 06:15:24 25 4
gpt4 key购买 nike

我编写的自定义排序函数有问题。在 Chrome 和 Firefox 中,排序正常,我的记录根据需要切换。当我在 IE 11 中运行代码时出现问题。这是我的示例 https://jsfiddle.net/azb90cgv/8/

在我看来,IE11 正在切换输入排序函数的值。

使用数据集 [A,B,C,D] Chrome 和 FF 按组合 (A,B)(B,C)(C,D) 对我进行排序 IE 11 将项目比较为 (B,A )(C,B)(D,C)

这是一个问题,因为我的行 return 1; 没有翻转我的记录 IE11 期望 -1 值。

我的目标:我希望数据按顺序排序,并且当存在重复时切换项目的原始顺序。我是否忽略了什么?为什么运行方式不同?

最佳答案

您需要按原始顺序对另一个属性进行稳定排序。如果两个项目具有相同的序列,则使用此选项。

var points = [{ id: 1, Sequence: 4 }, { id: 2, Sequence: 3 }, { id: 3, Sequence: 3 }, { id: 4, Sequence: 1 }]
order = true;
points.forEach(function (a, i) {
a.order = i;
});

document.getElementsByTagName('button')[0].onclick = function () {
points.sort(function (a, b) {
return a.Sequence - b.Sequence || (order ? a.order - b.order : b.order - a.order);
});
order = !order;
document.getElementById("out").innerHTML = JSON.stringify(points, 0, 4);
}
<button>Swap</button>
<pre id="out"></pre>

关于javascript - JS Array.Sort IE 11 与 Chrome 的差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36018350/

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