Javascript 重新排序数组
我不知道为什么排序在这种情况下不起作用:Javascript 重新排序数组,javascript,arrays,sorting,object,Javascript,Arrays,Sorting,Object,我不知道为什么排序在这种情况下不起作用: var articolo_generico = new Array(); var query_example= "select descrizione,quantita,prezzo from table"; query_sqlite(query_example, function (result) { var i = 0; for (var index in resul
var articolo_generico = new Array();
var query_example= "select descrizione,quantita,prezzo from table";
query_sqlite(query_example, function (result) {
var i = 0;
for (var index in result) {
var obj = result[index];
//the object values are strings
articolo_generico[i] = {'descrizione': obj.descrizione, 'quantita': obj.quantita, 'prezzo': obj.prezzo};
i++;
}
console.log("ARTICOLO GENERICO", articolo_generico);
articolo_generico = articolo_generico.sort(function (a, b) {
return a.descrizione > b.descrizione;
});
console.log("ARTICOLO GENERICO AFTER SORTING", articolo_generico);
});
但在这种情况下,排序是有效的
var articolo_generico = new Array();
articolo_generico[0] = {'descrizione': 'pizza', 'quantita': 5, 'prezzo': 3.00};
articolo_generico[1] = {'descrizione': 'apfelstrudel', 'quantita': 5, 'prezzo': 3.10};
articolo_generico[2] = {'descrizione': 'mojito', 'quantita': 5, 'prezzo': 3.20};
articolo_generico[3] = {'descrizione': 'bacardi', 'quantita': 5, 'prezzo': 3.50};
articolo_generico = articolo_generico.sort(function(a,b) { return a.descrizione > b.descrizione });
console.log(articolo_generico);
链接:
差异在哪里?可能是因为您的比较函数错误。如果a>b,则比较函数必须返回1;如果ab,则方法返回true;如果b.descripione)返回1,则方法返回false(0); 如果(a.descripione
articolo_generico.sort(function(a,b) {
if (a.descrizione > b.descrizione) return 1;
if (a.descrizione < b.descrizione) return -1;
return 0;
});