迭代

迭代
  1 //迭代: 函数作为参数,传递给具有迭代功能的另一个函数
  2 var students =[
  3   {id:10,name:'zs',age:80},
  4   {id:20,name:'ls',age:8},
  5   {id:30,name:'ww',age:18},
  6   {id:40,name:'c1',age:22},
  7 ];
  8 //1.是否都是成年人?--》every
  9  function check18(stu){
 10   return  stu.age>=18;
 11  }
 12  var result = students.every(check18);
 13  if(result){
 14    console.log("都是成年人");
 15  }else {
 16    console.log("不都是成年人");
 17  }
 18 //自己实现:是否都是成年人
 19 var flag=true;
 20 for(var i=0;i<students.length;i++){
 21   if(students[i].age<18){
 22     flag =false;
 23     break;
 24   }
 25 }
 26 //2.是否有成年人?-->some
 27 var result =students.some(function(stu){
 28   return stu.age>=18;
 29 });
 30 if (result){
 31   console.log("有成年人");
 32 }else {
 33   console.log("没有成年人");
 34 }
 35 //自己实现:是否有成年人
 36 var flag=false;
 37 for(var index in students){
 38   if(students[index].age>=18){
 39    flag =true;
 40    break;
 41   }
 42 }
 43 //3.成年人是哪些?-->filter过滤
 44 var arr =students.filter(function(stu){
 45  return stu.age>=18;
 46 });
 47 console.log(arr);
 48 //自己实现成年人是哪些人
 49 var arr=[];
 50 for(var index in students){
 51  if(students[index].age>=18){
 52   arr.push(students[index]);
 53  }
 54 }
 55 console.log(arr);
 56 //4.成年人的姓名?--> map映射,一一对应
 57 var arr =students.map(function(stu){
 58  if(stu.age>=18) return stu.name;
 59 });
 60 console.log(arr);
 61 //自己实现成年人姓名
 62 var arr=[];
 63 for (var index in students){
 64  if (students[index].age>=18){
 65    arr.push(students[index].name);
 66  }else{
 67    arr.push(undefined);
 68  }
 69 }
 70 //5.展示所有学生信息
 71 var result = students.forEach(function(stu,index,stus){
 72   //console.log(stu,index,stus);
 73   console.log(index,'-->',stu);
 74 });
 75 console.log(result);//undefined没有返回值
 76 //增强版for循环
 77 for (var index in students){
 78  console.log(index,'-->',students[index]);
 79 }
 80 
 81 Array.prototype.myForEach =function(func){
 82  for(var i=0;i<tis.length;i++){
 83   //this==students this[i]==student[i]
 84   //func(this[i],i,this);
 85   func.call(this,this[i],i,this);
 86  }
 87 }

打印结果
不都是成年人
有成年人
[
  { id: 10, name: 'zs', age: 80 },
  { id: 30, name: 'ww', age: 18 },
  { id: 40, name: 'c1', age: 22 }
]
[
  { id: 10, name: 'zs', age: 80 },
  { id: 30, name: 'ww', age: 18 },
  { id: 40, name: 'c1', age: 22 }
]
[ 'zs', undefined, 'ww', 'c1' ]
0 --> { id: 10, name: 'zs', age: 80 }
1 --> { id: 20, name: 'ls', age: 8 }
2 --> { id: 30, name: 'ww', age: 18 }
3 --> { id: 40, name: 'c1', age: 22 }
undefined
0 --> { id: 10, name: 'zs', age: 80 }
1 --> { id: 20, name: 'ls', age: 8 }
2 --> { id: 30, name: 'ww', age: 18 }
3 --> { id: 40, name: 'c1', age: 22 }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值