Я использую JavaScript для сортировки вложенных массивов. Это работает так, как я ожидаю:
arr = [[223, "VA", "BP8"], [24, "VA", "BP31"], [127, "VA", "BP1"]]
arr.sort(function(a,b){
return a[2] > b[2];
});
//[[127, "VA", "BP1"], [24, "VA", "BP31"], [223, "VA", "BP8"]]
Но когда я делаю это в браузере с большим количеством данных, после выполнения функции sort
ничего не сортируется. Осталось точно так, как было до звонка sort
. Есть идеи, что здесь не так? В приведенном выше примере точные данные сортируются в следующем примере: каждый вложенный массив имеет большую длину, и в него помещается больше данных.
tableData = [];
arrayUtil.forEach(event.features, function (feature) {
var rowData = [];
rowData.push(feature.attributes.OBJECTID);
rowData.push(feature.attributes.StateID);
rowData.push(feature.attributes.Point);
rowData.push(feature.attributes.PatchNum);
rowData.push(developed(feature.attributes.IsDeveloped));
rowData.push(cropType(feature.attributes.CropTypeID));
rowData.push(feature.attributes.CropResidue);
rowData.push(feature.attributes.CnpyOver12);
rowData.push(feature.attributes.CnpyDecid);
rowData.push(feature.attributes.CnpyConif);
rowData.push(feature.attributes.ShrubCover);
rowData.push(feature.attributes.ShbHiStemsDens);
rowData.push(feature.attributes.GrassCover);
rowData.push(feature.attributes.ForbCover);
rowData.push(feature.attributes.FrbAsProtect);
rowData.push(feature.attributes.ForbSpecies);
rowData.push(feature.attributes.BareGround);
rowData.push(herbHght(feature.attributes.HerbHeight));
var overstoryDesc = coarseClassify(feature.attributes.Overstory);
rowData.push(overstoryDesc);
rowData.push(fineClassify(feature.attributes.Understory, overstoryDesc));
rowData.push(qhStatus(feature.attributes.OfficialQH));
rowData.push(formatDate(feature.attributes.ObsvDate));
rowData.push(collectionType(feature.attributes.ObsvType));
tableData.push(rowData);
});
//Sort the tableData list of lists by Point name
tableData.sort(function (a, b) {
return a[2] > b[2];
});