根据输入字符从对象数组中筛选,模糊搜索,
indexOf() 如果查询到返回索引,反之返回-1
代码如下
html代码
<div class="left-box">
<div class="search-box">
<el-input size="small" class="search-input" placeholder="请输入关键词" v-model="searchKey">
<i slot="prefix" class="el-input__icon el-icon-search"></i>
</el-input>
</div>
<div class="checks-box">
<el-checkbox-group v-model="checkList">
<el-checkbox v-for="(item, index) in searchL" :key="index" :label="item.column_comment"></el-checkbox>
<el-checkbox v-for="(it, idx) in defaultList" :key="idx + headerList.length" :label="it.column_comment" disabled></el-checkbox>
</el-checkbox-group>
</div>
</div>
js代码
computed: {
searchL() {
let that = this
if (that.searchKey) {
return that.headerList.filter(item => item.column_comment.indexOf(that.searchKey) > -1)
} else {
return that.headerList
}
}
}
filter 定义
filter用于对数组进行过滤。
filter() 方法创建一个新的数组,新数组中的元素是通过检查指定数组中符合条件的所有元素。
filter() 不会对空数组进行检测;不会改变原始数组