vuejs сортировать по годам и находить по тегам в массиве - PullRequest
0 голосов
/ 26 мая 2020

Создание проекта в VueJS с данными, поступающими из api (с использованием ax ios): у меня есть список проектов с реквизитами (год, местоположение и т. Д. c) и тегами (дом, парк и т. Д. c). Я сделал этот фильтр для переключения сортировки по опоре:

sortby(data) {
 // data = {prop: "year", tag: "house"}
 //
 if (data.prop === "year") {
   this.projects.sort((a, b) => (a[data.prop] < b[data.prop] ? 1 : -1));
 } else {
   this.projects.sort((a, b) => (a[data.prop] < b[data.prop] ? -1 : 1));
 }
},

, но после сортировки я хотел бы показать только те объекты, которые имеют tag === "house".

какие-либо идеи? Спасибо!

1 Ответ

1 голос
/ 26 мая 2020

Вы можете использовать javascript фильтр массива

const filteredProjects = projects.filter(({tag}) => tag === "house");

или поместить его в вычисляемые свойства

data: () => ({
  projects: [
    {prop: "year", tag: "house"},
    ...
  ]
}),
computed: {
    filteredProjects: function () {
      return this.projects.filter(({tag}) => tag === "house");
    }
  }

, а затем использовать его в своем шаблоне

<template>
  <div>
    {{ filteredProjects }}
  </div>
</template>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...