的重新排序数组
Re-sorting array
我不知道为什么排序在这种情况下不起作用:
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);
链接:https://jsfiddle.net/sk5h6j6o/6/
差异在哪里?
可能是因为你的比较函数是错误的。如果a> b,比较函数必须返回1,如果a <如果a> b则返回true,如果a <= b则返回false(0)。所以当a <B,排序函数认为项是相等的。>如果a>
正确的排序方法是:
articolo_generico.sort(function(a,b) {
if (a.descrizione > b.descrizione) return 1;
if (a.descrizione < b.descrizione) return -1;
return 0;
});
相关文章:
- JavaScript数组排序(函数)用于对表行进行排序,而不是排序
- 在数组的 2/3 上调用自身的排序算法
- 数组值的排序以匹配另一个数组ES6
- 按不同项目对对象数组进行排序
- 根据Javascript中的字符串值对数组的数组进行排序
- 在不同的javascript数组中对json响应进行排序
- 对对象数组中的数组进行排序
- 按特定键对对象数组进行排序
- 使用jquery根据数组对表行进行排序
- 尝试对对象数组进行排序但拼接不是一个函数
- 对javascript中某些键的对象数组进行排序
- Javascript按数字顺序排序()数组
- Javascript排序索引链接数组
- 在jquery中对时间数组进行排序
- 如何在具有相同 ID 的 Javascript 中按排序函数对关联数组进行排序
- Javascript中的多维数组排序索引问题
- 如何在mongodb中根据数组内容的差异进行排序
- 在Javascript中对具有特定异常的对象数组进行排序
- 数组数据排序类似mysql查询
- 在小于O(n)时间内找到(排序)数组中的重复元素