所谓遍历数组就是将数组中的元素都取出来
使用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()方法需要一个函数作为参数,这种函数由我们创建但不由我们调用(浏览器调用),称为回调函数
- 数组中有几个元素,函数就执行几次。每次执行时,浏览器会将遍历到的元素以实参的形式传递进来,可以通过定义形参来读取这些内容
- 浏览器会在回调函数中传递三个参数:
- 第一个参数就是当前正在遍历的元素
- 第二个参数就是当前正在遍历的元素的索引
- 第三个参数就是当前正在遍历的数组
语法:
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);