Javascript 我做了一个简单的排序函数,但它不起作用
我制作了一个简单的排序函数,但出于某种原因,它仍然返回原始列表Javascript 我做了一个简单的排序函数,但它不起作用,javascript,html,node.js,json,Javascript,Html,Node.js,Json,我制作了一个简单的排序函数,但出于某种原因,它仍然返回原始列表 function sortByPopular (item) { let items_sold = item.slice(); items_sold.sort(function(a,b) { return a.quantity_sold > b.quantity_sold; }); loadPopularItems("popular-items", ite
function sortByPopular (item) {
let items_sold = item.slice();
items_sold.sort(function(a,b) {
return a.quantity_sold > b.quantity_sold;
});
loadPopularItems("popular-items", items_sold); //this sends it to the html
}
回调函数需要返回一个区分三种状态的数字,而不是布尔值: 如果两个元素排序相等,则返回0 如果a应在b之前排序,则返回任何小于0的数字 如果a应该在b之后排序,则返回任何大于0的数字 如果quantity\u Seld属性是一个数字,您可以简单地执行此操作:返回a.quantity\u Seld-b.quantity\u Seld 如果不是数字,则需要适当的If语句:
if ( a.quantity_sold > b.quantity_sold ) {
return -1;
}
elseif ( a.quantity_sold < b.quantity_sold ) {
return 1;
}
else {
return 0;
}
您需要返回一个数字,而不是布尔值。返回一个正数以将b放在第一位,返回负数以将a放在第一位,返回0以使其保持不变sameI’m猜测项是要排序的数组吗?item数组中的所有对象是否都具有quantity\u Seld属性?请参阅中的第二个答案。只需将>符号更改为-symbol。返回a.售出数量-b.售出数量;请阅读的文档,它甚至有简单的数字排序的例子。请注意,a,b=>a>b是一个无效的comparefn,虽然引擎通常不起作用,但将其作为参数进行排序的结果是依赖于规范的实现的,并且是任意的。谢谢大家,我认为我搜索了足够多,只是找不到答案,但我错了