数组常用遍历的方法
- 数组常用遍历的方法有哪些?
1、forEach:遍历数组
js
var colors = ["red","blue","green"]
// ES6 forEach
colors.forEach(function(color){
console.log(color);//red blue green
});
2、map:将数组映射成另一个数组
map通过指定函数处理数组的每个元素,并返回处理后新的数组,map 不会改变原始数组。
forEach和map的区别在于,forEach没有返回值。 map需要返回值,如果不给return,默认返回undefined
js
var numbers = [1,2,3]
var doubled = numbers.map((number)=>{
return number * 2;
})
console.log(doubled);//[2,4,6]
3、filter:从数组中找出所有符合指定条件的元素
filter() 检测数值元素,并返回符合条件所有元素的数组。 filter() 不会改变原始数组。
js
var porducts = [
{name:"cucumber",type:"vegetable"},
{name:"banana",type:"fruit"},
{name:"celery",type:"vegetable"},
{name:"orange",type:"fruit"}
]
var filtered2 = porducts.filter((product)=>{
return product.type === "vegetable";
})
4、find:返回通过测试(函数内判断)的数组的第一个元素的值
它的参数是一个回调函数,所有数组成员依次执行该回调函数,直到找出第一个返回值为true的成员,然后返回该成员。如果没有符合条件的成员,则返回undefined
js
var users = [
{name:"Jill"},
{name:"Alex",id:2},
{name:"Bill"},
{name:"Alex"}
]
user = users.find((user)=>{
return user.name === "Alex";
})
console.log(user);// {name:"Alex",id:2}找到后就终止循环
5、every&some
every:数组中是否每个元素都满足指定的条件
some:数组中是否有元素满足指定的条件
js
var computers = [
{name:"Apple",ram:16},
{name:"IBM",ram:4},
{name:"Acer",ram:32}
]
var every = computers.every((computer)=>{
return computer.ram > 16;
})
console.log(every);//false
var some = computers.some((computer)=>{
return computer.ram > 16;
})
console.log(some);//true
6、reduce:将数组合成一个值
reduce() 方法接收一个方法作为累加器,数组中的每个值(从左至右) 开始合并,最终为一个值。
js
var numbers = [10,20,30]
var sumValue = numbers.reduce((sum,number)=>{
console.log(sum);//0 10 30 60
return sum + number;
},0);//sum初始值为0
console.log(sumValue); //60
