//根据关键字,进行数据的搜索
//对列表数据遍历 看搜索关键字是否被包含在数据内
search(keywords){
var newlist = [];
this.list.forEach(item =>{
if(item.name.indexOf(keywords) !=-1) {//不等于-1就是包含在内部数据里
newList.push(item)
}
})
return newList
}
‘’(空)的indexOf是0 不是-1,所以包含在搜索数据内。只有-1是不匹配的
forEach some filter findIndex 都是数组的新方法
forEach没有办法中止,some可以通过true来中止 ,filter-进行过滤(把符合条件的返回生成一个新数组);findIndex-找到对应对象的索引
search(keywords){
var newlist = this.list.filter(item =>{
if(item.name.includes(keywords)){//包含就返回true
return item
}
})
return newList
}
过滤器做输出前最后一次的处理,原数据并没有被修改
<p{{ msg | msgFormat }}p> 用msgFormat处理前面的
//定义一个Vue全局的过滤器,名字叫做magFormat
//对msg文本进行局部替换 替换成邪恶
vue.Filter('msgFormat', function(msg){
return msg.reaplace('单纯','邪恶')
//直接返回到模板处输出
})
字符串的replace方法,第一个参数也可以写成正则 /单纯/g
也可以<p{{ msg | msgFormat(‘疯狂’,参,参) | 过滤器2 | 过滤器3}}p>
第二个位置进行传参 可以传递多个参数 会组合在一起
vue.Filter('msgFormat', function(msg, arg){
return msg.reaplace('单纯',arg)
Vue.filter('dateFormat', function(dateStr, pattern="") {
var dt = new Date(dateStr)
var y = dt.getFullYear()
var m = dt.getMouth() + 1
var d = dt.getDate()
if(pattern && pattern.toLowerCase() === 'yyyy-mm-dd') {
return `${y}-${m}-${d}` //tab上面的···
}else{
var hh = dt.getHours()
var mm = dt.getMinutes()
var ss = dt.getSeconds()
return `${y}-${m}-${d} ${hh}-${mm}-${ss}`
}
})