Chrome排序对象数组错误

时间:2017-11-23 20:23:31

标签: javascript google-chrome sorting

看起来Chrome中存在错误。

尝试使用以下代码对对象数组进行排序时

var list = [
    {Name: "Data1", pos: 35},
    {Name: "dProduct", pos: 35},
    {Name: "dSampleDeliveryDate", pos: 35},
    {Name: "dAnalysisDate", pos: 35},
    {Name: "dDestinationName", pos: 35},
    {Name: "Data3", pos: 35},
    {Name: "dRequirementRemarks", pos: 35},
    {Name: "dAutoRemarks", pos: 35},
    {Name: "dManualRemarks", pos: 35},
    {Name: "Data13", pos: 35},
    {Name: "dSignatures", pos: 35},
]

var sortFunc = function(a, b) {
    return 0;
}

list.sort(sortFunc);

console.log(list);

由于sort函数返回0,结果应该是相同的列表,但是在log

{Name: "Data3", pos: 35}
{Name: "Data1", pos: 35}
{Name: "dSampleDeliveryDate", pos: 35}
{Name: "dAnalysisDate", pos: 35}
{Name: "dDestinationName", pos: 35}
{Name: "dProduct", pos: 35}
{Name: "dRequirementRemarks", pos: 35}
{Name: "dAutoRemarks", pos: 35}
{Name: "dManualRemarks", pos: 35}
{Name: "Data13", pos: 35}
{Name: "dSignatures", pos: 35}

在所有其他浏览器中,结果都是正确的。

1 个答案:

答案 0 :(得分:0)

这不是错误。来自MDN

  

排序不一定是stable

因此,相同的元素可以在结果中以任何相对顺序排列,它们不必保留其原始顺序。