<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>列表排序</title>
<script type="text/javascript" src="./vuebasic/vue.js"></script>
</head>
<body>
<div id="root" >
<h1>模糊搜索</h1>
<input type="text" placeholder="请输入名字" v-model="keyWords">
<button @click="selectType = 2">金钱升序</button>
<button @click="selectType = 1">金钱降序</button>
<button @click="selectType = 0">原顺序</button>
<h6>第1种方法处理结果</h6>
<ul>
<li v-for="(people,index) in fliterName" :key="people.id">
{{ people.name }} ==> {{ people.gender}} ==> {{ people.money }}
</li>
</ul>
</div>
<script>
Vue.config.productionTip = false;//以阻止 vue 在启动时生成生产提示。
new Vue({
el:'#root',
data:{
keyWords:'',
// 0 表原顺序,1降序2升序
selectType:0,
peoples:[
{'id':'1','name':'张曼玉','gender':'女','money':300},
{'id':'2','name':'张雨生','gender':'男','money':222},
{'id':'3','name':'林雨申','gender':'男','money':200},
{'id':'4','name':'佟湘玉','gender':'女','money':220}
]
},
// 第1中处理方法,使用计算属性来操作
computed:{
fliterName(){
const arr = this.peoples.filter((p)=>{
return p.name.indexOf(this.keyWords) !== -1
})
if(this.selectType != 0){
arr.sort((a,b)=>{
return this.selectType === 1 ? b.money - a.money : a.money - b.money
})
}
return arr
}
},
})
</script>
</body>
</html>