Javascript 根据vuejs中的价格(产品的mrp)对产品进行排序

Javascript 根据vuejs中的价格(产品的mrp)对产品进行排序,javascript,vue.js,Javascript,Vue.js,** 样本数据 storeProducts=[ {Pname:'soap', mrp:50 }, {Pname:'facewash', mrp:30 }, {Pname:'洗发水', mrp:100 }] ** 我正在尝试根据storeProducts的价格对产品进行分类,我尝试了一些方法,有人能告诉我怎么做吗 从低到高(价格) 从高到低(价格) 导出默认值{ 名称:“ProductBySubCategory”, 组成部分:{ 产品瓷砖, }, 数据(){ 返回{ 产品:[], 存储产品:[]

** 样本数据
storeProducts=[
{Pname:'soap', mrp:50 },
{Pname:'facewash', mrp:30 },
{Pname:'洗发水', mrp:100 }
]

** 我正在尝试根据storeProducts的价格对产品进行分类,我尝试了一些方法,有人能告诉我怎么做吗


从低到高(价格)
从高到低(价格)
导出默认值{
名称:“ProductBySubCategory”,
组成部分:{
产品瓷砖,
},
数据(){
返回{
产品:[],
存储产品:[],
糟糕的是:1,
};
},
方法:{
getRenamedProducts(产品){
返回产品。映射((产品)=>{
返回{
id:prod.id,
标题:prod.title,
mrp:prod.mrp,
realUnit:prod.unit,
};
});
},
},
计算:{
filteredProduct:函数(){
返回此.storeProducts.sort((a,b)=>{
if(this.sortBy==“1”){
返回b.mrp-a.mrp;
}else if(this.sortyBy=='2'){
返回a.mrp-b.mrp;
}
});
},
},
};
```
试试这个:

filteredProduct:function(){
const sortBy=this.sortBy;
返回此.storeProducts.sort((a,b)=>{
如果(排序方式=='1'){
返回b.mrp-a.mrp;
}else if(排序方式=='2'){
返回a.mrp-b.mrp;
}
});
}

能否检查排序胖箭头函数中
this
的值,我认为
this
的值在该范围内可能不正确。另外,您可以添加您得到的错误吗?这将返回所有对象数组。错误消息:184:14错误“filteredProduct”计算属性vue中出现意外的副作用/no-side-effects-in-computed-properties。感谢您的回复,但收到了相同的错误消息。您好@swati,错误是怎么说的?将此.storeProducts存储到变量后,错误已删除,但产品仍未排序。为什么?决定:)谢谢。
  <div class="mt-4">
            <div class="column" v-if="storeProducts.length !== 0">
              <div class="control is-pulled-right">
                <div class="select">
                 <select v-model="sortBy" v-on:change="filteredProduct">
                    <option value="1">Low to High(Price)</option>
                    <option value="2">High to Low(Price)</option>
                  </select>
                </div>
              </div>
            </div>
          </section>
      </div>
</template>

<script>
export default {
  name: 'ProductBySubCategory',
  components: {
    ProductTile,
  },
  data() {
    return {
      products: [],
      storeProducts: [],
      sortBy: 1,
    };
  },
  methods: {
    getRenamedProducts(products) {
      return products.map((prod) => {
        return {
          id: prod.id,
          title: prod.title,
          mrp: prod.mrp,
          realUnit: prod.unit,
        };
      });
    },
  },
  computed: {
     filteredProduct: function () {
      return this.storeProducts.sort((a, b) => {
      if (this.sortBy == '1') {
     return b.mrp - a.mrp;
        } else if (this.sortyBy == '2') {
         return a.mrp - b.mrp;
         }
    });
     },
  },
};
</script>```