vue的这段排序代码看着不是很懂, p => p.name.indexOf(searchperson)!== -1到底是什么意思

源码,<divid="bigv"v-mo><inputtype="text"v-model="searchperson"><ul><liv-for="(p,index)i... 源码,
<div id="bigv" v-mo>
<input type="text" v-model="searchperson">
<ul>
<li v-for="(p,index) in filterperson" :click="index">
{{index}}---{{p.name}}---{{p.age}}--{{p}}
</li>
</ul>
<button @click="setordertype(1)">年龄升序</button>
<button @click="setordertype(2)">年龄降序</button>
<button @click="setordertype(0)">原本顺序</button>
</div>

<script src="../js/vue.js"></script>
<script>
const vm = new Vue({
el:"#bigv",
data:{
searchperson:'',
orderType:0, //0代表原序,1升序,2降序
person:[
{name:'林凯森',age:18 },
{name:'森林凯',age:14 },
{name:'凯林森',age:10 },
{name:'森凯林',age:108 },
]
},
computed:{
filterperson(){
//取出相关的数据
const{ searchperson ,person,orderType }=this
//最终返回显示的数组
let fperson;
fperson = person.filter( p => p.name.indexOf(searchperson)!== -1 )
if(orderType) {
fperson .sort(function (p1, p2) {

if (orderType === 2) {

return p2.age - p1.age
} else {
return p1.age - p2.age
}
})
}
return fperson
}
},
methods:{
setordertype(orderType){
this.orderType=orderType
}
}
})
</script>

我的问题是这句 p => p.name.indexOf(searchperson)!== -1最后返回了个啥,我看着像是返回了true/false啊 他换成普通JS函数长啥样?
展开
 我来答
德韵5B
2019-07-03 · TA获得超过1408个赞
知道小有建树答主
回答量:1325
采纳率:78%
帮助的人:229万
展开全部

p => p.name.indexOf(searchperson)!== -1

这个=> 是箭头函数,会绑定作用域(this不是指函数作用域,而是上级作用域的this,这里没用到,可以不用管),并返回后面js的结果。转化成普通函数就

相当于

function (p) {

retrun p.name.indexOf(searchperson)!== -1

}

更多追问追答
追问
那结果就相当于返回了一个true/false?
fperson = person.filter( true )是怎么过滤出数据的····
追答
filter 的过滤函数本来就是返回true/false 的,true 保留当前索引值, false 丢弃当前索引值
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式