【发布时间】:2021-06-16 22:20:21
【问题描述】:
我有一个数据表,我想向它添加搜索/过滤功能。我设法部分做到了,但现在我只能过滤数组中的一个元素。这是数组;
dataArray: [
{ date: "12.02.2021", time: "Aaa", level: '1111', service: 'Zzzz', description: '124-362' },
{ date: "13.02.2021", time: "Bbbb", level: '2222', service: 'Yyyyy', description: '748-987' },
{ date: "14.02.2021", time: "Cccc", level: '3333', service: 'Xxxxx', description: '012-365' },
{ date: "15.02.2021", time: "Dddd", level: '4444', service: 'Qqqqq', description: '271-016' },
{ date: "16.02.2021", time: "Eeee", level: '5555', service: 'Tttt', description: '341-222' },
{ date: "17.02.2021", time: "Ffff", level: '6666', service: 'Uuuu', description: '932-324' },
{ date: "18.02.2021", time: "Gggg", level: '7777', service: 'Vvvvv', description: '459-974' },
{ date: "19.02.2021", time: "Hhhh", level: '8888', service: 'Wwwww', description: '224-569' },
{ date: "20.02.2021", time: "Jjjj", level: '9999', service: 'Mmmm', description: '617-619' },
{ date: "21.02.2021", time: "Kkkk", level: '10101010', service: 'Nnnnn', description: '825-379' },
],
这里是 HTML;
<tr v-for="(dataArray, i) in filteredItems" :key="i">
<p class="table-iterator">{{i--}}</p>
<td class="table-row text-left">{{connectivityLogs.date}}</td>
<td class="table-row text-center">{{connectivityLogs.time}}</td>
<td class="table-row text-center">{{connectivityLogs.level}}</td>
<td class="table-row text-center">{{connectivityLogs.service}}</td>
<td class="table-row text-right">{{connectivityLogs.description}}</td>
</tr>
<input type="text" v-model="search">上方还有一个输入,我在Vue脚本的data部分定义了search变量。
最后,这是我使用计算属性过滤元素(仅时间)的方法;
computed: {
filteredItems(){
return this.dataArray.filter(dataArray => {
return dataArray.time.toLowerCase().indexOf(this.search.toLowerCase()) > -1
})
}
}
我的问题是,我怎样才能对所有这些进行过滤操作?现在只能过滤时间了。
【问题讨论】:
-
你的意思是你只能过滤数组中对象的一个属性吗?在这种情况下,
time -
在过滤器内的dataArray上使用Object.keys,或者使用一堆
||的 -
Ayrıca indexOf > -1 yerinde direk
includesda kullanabilirsin :) -
你可以试试stackoverflow.com/questions/66685931/…。希望对你有帮助
标签: javascript vue.js filter