首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在vue.js中对计算属性进行排序

如何在vue.js中对计算属性进行排序
EN

Stack Overflow用户
提问于 2019-11-06 08:06:33
回答 3查看 4.5K关注 0票数 0

我不知道如何对已经计算过的结果数组进行排序。

在Vue中,我根据图像的比例对图像进行过滤。现在,我想按日期、名称或任何可能的方式对各个结果进行排序。

我尝试使用一个方法对数组进行排序,但此解决方案不会自动重新计算并动态显示排序的结果。

代码语言:javascript
运行
复制
data() {
    return {
      results: [],
      imgProperties: {
        imgId: [],
        imgRatio: [],
        imgCreateDate: []
      }
    };
  },
  computed: {
    resultsFiltered() {
      if (this.sliderVal == 0) {
        return this.results;
      } else {
        const obj = [];
        const arr = [];
        for (let i = 0; i < this.ratioIndeces.length; i++) {
          const element = this.ratioIndeces[i];
          obj.push(this.results[element]);
          arr.push(this.imgProperties.imgRatio[element]);
        }
        return obj;
      }
    }
  },

这里看不到排序方法。

我想知道如何或从哪里开始。

代码示例显示了当前结构的摘录。在这些方法中计算了该比率。

我想按以下方式对数组进行排序

..。

EN

Stack Overflow用户

回答已采纳

发布于 2021-02-19 19:23:05

这是我的最新方法

过滤结果并对其进行排序

同时通过参数:

代码语言:javascript
运行
复制
computed: {
  resultsFiltered () {
    return this.built.dataset.filter(img => {
      return this.customFilters.every(key => {
        const parameter = this.params[key]
        const args = parameter.map(val => this.customInputs[val]).slice(1)
        return filterMenus[key](img[parameter[0]], ...args)
      })
    }).sort(this.sortings[this.sortDirection][this.sortType])
  }
},

单个元素:

=是一个对象数组。每个img都是一个对象。

=是一个带有筛选选项的数组。如“ratio”或“keyword”。这样我就可以用我在列表中得到的每一个键进行过滤。

=用户键入的内容。日期范围、比率、关键字、年份...

=将img1与img2进行比较

=向上或向下。就像‘img2.rate-img1.atio’

=字母、数字、按日期或重置为默认视图

票数 0
EN
查看全部 3 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58721267

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档