Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 我做了一个简单的排序函数,但它不起作用_Javascript_Html_Node.js_Json - Fatal编程技术网

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,虽然引擎通常不起作用,但将其作为参数进行排序的结果是依赖于规范的实现的,并且是任意的。谢谢大家,我认为我搜索了足够多,只是找不到答案,但我错了