我做了一个简单的排序函数,但由于某种原因它仍然返回原始列表。
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 :(得分:1)
回调函数需要返回区分三种状态的数字,而不是布尔值:
如果quantity_sold 属性是一个数字,您可以简单地执行此操作:return a.quantity_sold - b.quantity_sold;
如果不是数字,则需要适当的 if 语句:
if ( a.quantity_sold > b.quantity_sold ) {
return -1;
}
elseif ( a.quantity_sold < b.quantity_sold ) {
return 1;
}
else {
return 0;
}