【问题标题】:how can i filter the data based on array of cities如何根据城市数组过滤数据
【发布时间】:2020-06-01 10:05:27
【问题描述】:

我有一个选择菜单,我可以在其中选择城市 我想显示这个城市的所有可用书籍(基于城市数组) 我应该在checkavailablecity里面写什么

这里是完整代码

the full code

HTML:

<select>
<option value="NewYork" v-model="myCity">New York</option>
.. </select>
<ul>
<li v-for="book in checkavailablecity">{{book.bookName}} 
</li>
</ul></div>

JavaScript:

data: {
  myCity:'',
  bookinfo:[{
  bookName:'Big Nate: Fun Blaster',
  cities: ['NewYork','Washington','Texas']
  },
  {
  bookName:'Now I Rise',
  cities: ['Texas']
  }
  ]
},
computed: {
  checkavailablecity: function(){
       var mycity = this.myCity;
       return this.bookinfo.filter(function(book){
       ....
     })   }   } })

【问题讨论】:

标签: javascript algorithm vue.js debugging filtering


【解决方案1】:

首先,您将一个变量绑定到选择下拉菜单,而不是每个选项。

因此,您共享的链接中的select 下拉菜单将从:

<select>
 <option value="NewYork" v-model="myCity">New York</option>
 <option value="Texas" v-model="myCity">Texas</option>
</select>

<select v-model="myCity">
 <option value="NewYork" >New York</option>
 <option value="Texas">Texas</option>
</select>

您的回调函数将简单地检查您当前图书的cities 是否选择了当前城市。如下所示:

return this.bookinfo.filter(function(book){
     return book.cities.includes(mycity);
})

工作演示: https://jsfiddle.net/k8L4my3u/

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-12-07
    • 2018-10-04
    • 2022-01-01
    • 1970-01-01
    相关资源
    最近更新 更多