好的奇怪的结果,并不像预期的那么多。然而,我不知道如何过来,我有一天,每一个合乎逻辑的东西相当于一个巨大的脑屁对我来说。无论如何。让我们说为了安逸。我的数组只有数字,没有别的。我的数组范围是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到字符串(或者我注意到的可能是基于浏览器的)。
所以我现在陷入困境,因为我希望这些东西按特定顺序排列,我的大脑今天不会工作。
编辑我排序结果的例子:
dashboardJSON.widgets.sort(sortJSONresultsByWidgetID);
答案 0 :(得分:1)
您需要使用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;
}
更新 - 这是Ellian的优化:
function sortJSONresultsByWidgetID(a,b)
{
return parseInt(a.wigetID, 10) - parseInt(b.wigetID, 10);
}