Vuejs Search filter Vuejs Search filter typescript typescript

Vuejs Search filter


You can use the includes() function of the array to search any position in a sentence or phrase.

new Vue({  el: '#app',  data() {    return {        searchQuery: null,        resources:[            {title:"ABE Attendance",uri:"aaaa.com",category:"a",icon:null},            {title:"Accounting Services",uri:"aaaa.com",category:"a",icon:null},            {title:"Administration",uri:"aaaa.com",category:"a",icon:null},            {title:"Advanced Student Lookup",uri:"bbbb.com",category:"b",icon:null},            {title:"Art & Sciences",uri:"bbbb.com",category:"b",icon:null},            {title:"Auxiliares Services",uri:"bbbb.com",category:"b",icon:null},            {title:"Basic Skills",uri:"cccc.com",category:"c",icon:null},            {title:"Board of Trustees",uri:"dddd.com",category:"d",icon:null}        ]    };  },  computed: {    resultQuery(){      if(this.searchQuery){      return this.resources.filter((item)=>{        return this.searchQuery.toLowerCase().split(' ').every(v => item.title.toLowerCase().includes(v))      })      }else{        return this.resources;      }    }  } })
<!DOCTYPE html><html><head><meta name="viewport" content="width=device-width, initial-scale=1"><script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.16/vue.js"></script><link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css" ></head><body><div id="app">   <div class="panel panel-default">   <div class="panel-heading">         <strong> All Resources</strong></div>            <div class="row">                 <div class="search-wrapper panel-heading col-sm-12">                     <input class="form-control" type="text" v-model="searchQuery" placeholder="Search" />                </div>                                    </div>        <div class="table-responsive">            <table v-if="resources.length" class="table">                <thead>                    <tr>                         <th>Resource</th>                    </tr>                </thead>                <tbody>                    <tr v-for="item in resultQuery">                        <td><a v-bind:href="item.uri" target="_blank">{{item.title}}</a></td>                    </tr>                </tbody>            </table>        </div>   </div>   </div></body></html>