数组的遍历

这篇博客介绍了三种遍历数组的方法:for循环、for...in和forEach,并提供了示例代码。此外,还展示了如何创建一个Person构造函数,以及如何通过遍历Person对象数组,筛选出年龄大于等于18岁的对象,将其存储到新的数组中。
摘要由CSDN通过智能技术生成

所谓遍历数组就是将数组中的元素都取出来

使用for循环语句遍历数组元素

语法:

var 数组 = [元素1,元素2,元素3...元素n]
for(var i=0;i<arr.length;i++){
    数组[i];
}

使用for....in语句访问数组元素

语法:

var 数组 = [元素1,元素2....元素n];
for(var i in 数组){
    数组[i];
}

使用forEach()方法遍历数组 

  • forEach()方法只支持IE8以上的浏览器,如果需要兼容IE8,则不要使用forEach()方法
  • forEach()方法需要一个函数作为参数,这种函数由我们创建但不由我们调用(浏览器调用),称为回调函数
  • 数组中有几个元素,函数就执行几次。每次执行时,浏览器会将遍历到的元素以实参的形式传递进来,可以通过定义形参来读取这些内容
  • 浏览器会在回调函数中传递三个参数:
  1. 第一个参数就是当前正在遍历的元素
  2. 第二个参数就是当前正在遍历的元素的索引
  3. 第三个参数就是当前正在遍历的数组

语法:

var 数组 = [元素1,元素2...元素n];
数组.forEach(function(value,index,obj){
    console.log(value);
    console.log(index);
    console.log(obj);
});


数组练习

//创建一个构造函数Person
function Person(name,age,gender){
    this.name = name;
    this.age = age;
    this.gender = gender;
}
//创建多个Person对象
var per = new Person("孙悟空",18);
var per2 = new Person("猪八戒",28);
var per3 = new Person("红孩儿",8);
var per4 = new Person("蜘蛛精",16);
var per5 = new Person("二郎神",38);
//将这些Person对象放到一个数组中
var perArr = [per,per2,per3,per4,per5];
//创建一个函数,可以将perArr中的满18岁的person取出来然后封装到一个新的数组中并返回
function getAdult(arr){    //arr,形参,要提取信息的数组
    //创建一个新的数组
    var newArr =[];
    //遍历arr,获取arr中Person对象   
    
    //判断Person对象的age是否大于等于18

    //如果大于等于18,则将这个对象添加到newArr中

    //将新的数组返回
    return newArr;     
}
var result = getAdult(perArr);
console.log(result);

//创建一个构造函数Person
function Person(name,age,gender){
    this.name = name;
    this.age = age;
    this.gender = gender;
}
//创建多个Person对象
var per = new Person("孙悟空",18);
var per2 = new Person("猪八戒",28);
var per3 = new Person("红孩儿",8);
var per4 = new Person("蜘蛛精",16);
var per5 = new Person("二郎神",38);
//将这些Person对象放到一个数组中
var perArr = [per,per2,per3,per4,per5];
//创建一个函数,可以将perArr中的满18岁的person取出来然后封装到一个新的数组中并返回
function getAdult(arr){    //arr,形参,要提取信息的数组
    //创建一个新的数组
    var newArr =[],j=0,i;
    //遍历arr,获取arr中Person对象   
    for(i=0;i<arr.length;i++){
        //判断Person对象的age是否大于等于18
        if(arr[i].age>=18)
        {
            //如果大于等于18,则将这个对象添加到newArr中
            newArr[j]=arr[i];
            j++;
        }
    }
    //将新的数组返回
    return newArr;     
}
var result = getAdult(perArr);
console.log(result);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值