Json 如何在按id筛选时显示所有寄存器,其中id应等于阵列中的另一个id(VUE 3)

Json 如何在按id筛选时显示所有寄存器,其中id应等于阵列中的另一个id(VUE 3),json,vuejs3,Json,Vuejs3,因此,我对静态内容有一个headless,我使用firebase管理用户,并将favs文章保存在Json文件中。我的Json如下所示: [ { "id": “0000001”, "name": “Helga”, "favorites": [ “1234”, “6789” ] }, { "id": “0000002”, "name": “Otto”,

因此,我对静态内容有一个headless,我使用firebase管理用户,并将favs文章保存在Json文件中。我的Json如下所示:

[
  {
  "id": “0000001”,
  "name": “Helga”,
  "favorites":
    [ “1234”, “6789” ]
  },
  {
    "id": “0000002”,
    "name": “Otto”,
    "favorites":
      [ “3334” ] 
    }
] 所以我创建了一个计算函数来比较firebase中的当前用户id和Json文件,然后如果相等,那么我在用户数组“favorites”中搜索文章id,直到这里一切正常。。。但是这里是我的问题,在下面函数的最后一行,我想显示所有文章,其中id等于数组(收藏夹)中的内容,但是因为是数组,所以这不起作用。出于测试目的,我将[0]放在了末尾,第一个放在了该用户的内部,所以问题是如何获取所有这些内容?我应该使用不同的方法吗

  displayFav(){
  if (firebase.auth().currentUser !== null) 
     var currentUser = firebase.auth().currentUser.uid;
     var filteredFav = this.favs.find(x => x.id === currentUser).favorites;

      return  this.response && this.response.allArticles.filter(a => a.id == filteredFav[0]);

}

感谢您的阅读和帮助。如果您需要查看其他内容,请告诉我,您需要将值(
a.id
)与数组的所有值(
filteredFav
)进行比较,因此可以使用
includes()
)而不是equals(
=

例如:

返回this.response&&this.response.allArticles.filter(a=>filteredFav.includes(a.id));

Hello Daniel谢谢,我昨天在这里添加了一条评论,但由于某些原因没有添加。我有一个小问题,我是在本地工作的,但是我向firebase提交了我的文件,更改为{“userfav”:[{“id”:“0000001”,“name”:“Helga”,“favorites”:[“1234”,“6789”]},…]},所以我创建了另一个连接到firebase的函数,显然正在控制台上工作,我去拿东西。但是当我到达代码行时,回到函数:var filteredFav=dbValue.find(x=>x.id==this.getCurrentUser);我在控制台中得到了这一点,它仍然很好:[“1234”,“6789”]但是这里-->this.response&&this.response.allArticles.filter(a=>filteredFav.includes(a.id))。出现错误“无法读取未定义的属性'favorites'”嗨,忽略我的命令,我只需要在顶部添加一个v-if=“displayFav”,因为我在加载信息之前请求该信息:)