Vue之列表过滤

jS中的Filter函数

1.作用

filter用于对数组进行过滤
它创建一个新数组,新数组中的元素是通过检查指定数组中符合条件的所有元素。

2.语法

Array.filter(function(currentValue, index, arr), thisValue)

其中,函数 function 为必须,数组中的每个元素都会执行这个函数。且如果返回值为 true,则该元素被保留;
  函数的第一个参数 currentValue 也为必须,代表当前元素的值。

3.实例

返回数组nums中所有大于5的元素

let nums = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];

let res = nums.filter((num) => {
  return num > 5;
});

console.log(res);  // [6, 7, 8, 9, 10]

Vue列表过滤

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<script src="../JS/vue.js" type="text/javascript" charset="utf-8"></script>
	</head>
	<body>
		<!-- 准备好一个容器 -->
		<div id="root">
			<h2>遍历数组</h2>
			<p><input type="text" placeholder="请输入名字" v-model="keyWord" />
			</p>
			<ul>
			  <li v-for='(p,index) in filArr' :key="index">
			 {{index}}---{{p.name}}--{{p.age}}
			  </li>
			</ul>
		</div>
		
		<script type="text/javascript">
			var vm = new Vue({
				el:'#root',
				data:{
					keyWord:'',
					// 原数组
					persons: [
					  { id: 1, name: '周杰', age: 21 },
					  { id: 2, name: '周杰伦', age: 22 },
					  { id: 3, name: '周芷若', age: 23 },
					  { id: 4, name: '张杰', age: 24 }
					],
					//过滤后的数组
					filArr:[]
				},
				//监听属性
				watch:{
					keyWord:{
						immediate:true,
						// 过滤数组,
						//数组中的每个元素都会执行这个函数。p代表当前元素的值。
						//例如现在数组中有四个人,第一次执行时 p 就代表 对象{ id: 1, name: '周杰', age: 21 }
						handler(val){
							console.log("变化了")
							this.filArr = this.persons.filter((p)=>{
								 return p.name.indexOf(this.keyWord) !== -1;
							 })
						}
					}
				}
				/* computed:{
					filPerson(){
						//过滤数组
						let filtArr = new Array();
						filtArr = this.persons.filter((a)=>{
							return a.name.indexOf(this.keyWord) !== -1;
						})
						return filtArr;
						}
				} */
			})
		</script>
		
	</body>
</html>


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值