编程语言
首页 > 编程语言> > 如何在Javascript中对关联数组进行排序?

如何在Javascript中对关联数组进行排序?

作者:互联网

我需要通过JS为我的一个项目排序关联数组.我发现这个函数在firefox中运行得很好,但不幸的是它在IE8,OPERA,CHROME中无法工作……无法找到使其在其他浏览器中工作的方法,或者找到适合其目的的另一个函数.我非常感谢任何帮助.

function sortAssoc(aInput)
{
    var aTemp = [];
    for (var sKey in aInput) aTemp.push([sKey, aInput[sKey].length]);
    aTemp.sort(function () {return arguments[0][1] < arguments[1][1]});
    var aOutput = new Object();
    //for (var nIndex = aTemp.length-1; nIndex >=0; nIndex--)
    for (var nIndex = 0; nIndex <= aTemp.length-1; nIndex++)
        aOutput[aTemp[nIndex][0]] = aInput[aTemp[nIndex][0]];
    //aOutput[aTemp[nIndex][0]] = aTemp[nIndex][1];
    return aOutput;
}

解决方法:

这是不可能的. JavaScript中的一个对象(你正在使用它作为“关联数组”)在使用for … in循环迭代其属性时是specified as having no defined order.您可以在某些浏览器的行为之间观察到一些共同点,但是it’s not universal.

简介:如果您需要特定顺序的对象,请使用数组.

标签:javascript,arrays,sorting,associative
来源: https://codeday.me/bug/20190606/1189548.html