Javascript排序项目,不包括某些特定项目

Javascript排序项目,不包括某些特定项目,javascript,jquery,ecmascript-6,canjs,Javascript,Jquery,Ecmascript 6,Canjs,我正在尝试对某些项目进行排序(对地图进行排序),我可以成功地对其进行排序,但我希望根据其属性排除某些项目 现在我是这样根据属性-价格排序的 return (product.attr('active') !== 'f' }).sort(function(pA,pB){ return pB.attr('price') - pA.attr('price'); }); 我想跳过一些基于attr('product\u id')的项目,

我正在尝试对某些项目进行排序(对地图进行排序),我可以成功地对其进行排序,但我希望根据其属性排除某些项目

现在我是这样根据属性-价格排序的

 return (product.attr('active') !== 'f'
                }).sort(function(pA,pB){
                  return pB.attr('price') - pA.attr('price'); });
我想跳过一些基于
attr('product\u id')
的项目,这样列出的product\u id就不会被排序,而是首先返回

return (product.attr('active') !== 'f'
      }).sort(function(pA,pB){
   return pB.attr('price') - pA.attr('price'); }).except(pA.attr('product_id') == 5677));
很明显,除了函数不存在外,类似于上面的内容

是否有一种方法可以根据某些项目的属性(如id)将其排除在排序之外

资料


您可以使用支票对想要的项目进行排序,并返回支票的增量

var数组=[{product\u id:1,price:1},{product\u id:2,price:3},{product\u id:3,price:4},{product\u id:4,price:1},{product\u id:5,price:8},{product\u id:5677,price:1}];
array.sort(函数(a,b){
返回(b.product_id==5677)-(a.product_id==5677)| b.price-a.price;
});
console.log(数组)

。作为控制台包装{max height:100%!important;top:0;}
您可以向我们展示您的数据吗?请提供您的输入和预期结果的示例。数据已发布@void。您可以现在格式化它吗?您有多个项目要排序到顶部吗?我如何使其适用于多个产品id?我需要排除一个以上的
产品id
顶项是否需要特殊排序,尽管标准的降序排序是按
价格
?否,顶项不需要特殊排序。这是否适用于按名称、日期和其他排序方法进行的其他展位降序排序?您可以将其他排序标准与逻辑排序或价格排序联系起来。它肯定会排除那些要排序的项目,但它是最后返回的,我需要先返回它
Map
active
:
true
brand_id
:
1
categories
:
Map(2) ["All Products", "Snacks", _cid: ".map232", _computedAttrs: {…}, __bindEvents: {…}, _comparatorBound: false, _bubbleBindings: {…}, …]
channel_id
:
1
created
:
"2017-08-14T19:16:56.148029-07:00"
description
:
"Breakfast"
image
:
"/media/333807.png"
name
:
"Breakfast"
price
:
"1"
product_id
:
5677