console
new Vue({
el: "#app",
data: {
keyword: '',
showList: [],
dataList: [
{
name: '张三',
age: 18
},
{
name: '李四',
age: 19
},
{
name: '王五',
age: 22
},
{
name: '赵六',
age: 23
},
{
name: '孙七',
age: 25,
obj: {
test: '123'
}
}
]
},
mounted() {
this.showList = this.dataList
},
watch: {
keyword(val) {
if (!val) {
this.showList = this.dataList
} else {
const result = this.dataList.filter(item => {
return Object.keys(item).some(key => {
return String(item[key]) !== "[object Object]" && String(item[key]).indexOf(this.keyword) > -1
})
})
this.showList = result
}
}
},
methods: {
}
})
<div id="app">
<input type="text" placeholder="请输入搜索" v-model="keyword">
<ul>
<li v-for="(item,index) of showList" :key="index">
{{item.name + ':' + item.age + '岁'}}
</li>
</ul>
</div>