Skip to content
On this page

数组常用遍历的方法

  1. 数组常用遍历的方法有哪些?

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
img