通过JavaScript奇数结果排序JSON对象

Sorting JSON Object via JavaScript odd results

本文关键字:排序 JSON 对象 结果 JavaScript 通过      更新时间:2023-09-26

好吧奇怪的结果,没有预期的那么多。然而,我不确定如何克服它,我正经历着这样的日子:每一个合乎逻辑的事情对我来说都相当于一个巨大的大脑屁。无论如何。为了方便起见。我的数组只有数字,没有别的了。我的数组范围从1-50,所以我的排序结果类似于1,10,11,12,13 ....2,20,21,22,23…等。当我需要它像1,2,3,4,5,6,7,8,9,10,11,12…

我的简单的小函数是…

function sortJSONresultsByWidgetID(a,b)
{   
    if(parseInt(a.wigetID) == parseInt(b.wigetID))
    {
        return 0;
    }
    return parseInt(a.wigetID) > parseInt(b.wigetID) ? 1 : -1;
}

作为参考,我parseInt由于JSON的方式我的JSON处理当我从数据库来回发布它,我存储在数据库中的实际JSON,当它传递给PHP它包装引号周围的数字把它们从INT到字符串(或从我注意到,可能是基于浏览器的)。

所以我现在困在这里,因为我想把这些事情按特定的顺序列出,我的大脑今天不工作。

EDIT示例:

dashboardJSON.widgets.sort(sortJSONresultsByWidgetID);

需要用基数为10的整数解析,并使用===操作符而不是==。我想应该可以了。

function sortJSONresultsByWidgetID(a,b)
{
    var widgetAId = parseInt(a.wigetID, 10);
    var widgetBId = parseInt(b.wigetID, 10);
    if(widgetAId === widgetBId)
    {
        return 0;
    }
    return widgetAId > widgetBId ? 1 : -1;
}

UPDATE -这是Ellian的优化:

function sortJSONresultsByWidgetID(a,b)
{
    return parseInt(a.wigetID, 10) - parseInt(b.wigetID, 10);
}