欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

数组中遍历的方法

程序员文章站 2022-06-23 23:34:11
在数组的方法中有一组用于遍历数组的方法。有 forEach()、map()、filter()、find()、reduce()、some()、every()。 他们的共同特征是: 1. 它们都自带遍历(只要调用这个方法就会自动循环数组中的每一项) 2. 它们都不会改变原数组,调用方法后产生的结果在返回 ......

在数组的方法中有一组用于遍历数组的方法。有 foreach()、map()、filter()、find()、reduce()、some()、every()。

他们的共同特征是:
 1.    它们都自带遍历(只要调用这个方法就会自动循环数组中的每一项)
 2.    它们都不会改变原数组,调用方法后产生的结果在返回值中
 3.    它们的参数都是一个函数,这个函数都有三个参数(只有第一个“项”是必填的)

foreach((item,index,default)=>....)

    1.    item:代表这一次循环出来的项
    2.    index:代表这一次循环出来的相前项的索引
    3.    default:代表的是当前用于循环的数组

1、foreach()方法

  作用:循环每一项(没有其它特殊作用)

  参数:一个函数

  返回值:“undefined” (因为仅仅只是循环每一项,所以返回值就是"undefined")

例如:

let arr = ["1","3","5","7","9","11"]
let x = arr.foreach((a,i,t)=>{  //a : 代表这一次循环出来的项 ; i : 代表这一次循环出来的相前项的索引; t : 代表的是当前用于循环的数组
    console.log(a,i,t)
    return a
})
console.log(x)

 

 输出结果为:

数组中遍历的方法

2.、map() 方法

  作用:更新数组(循环并更新每一项,最后返回所有项的数组)

  参数:是一个函数  

  返回值:更新后的数组

例如:

let arr = ["1","3","5","7","9","11"]
let x = arr.map((a,i,t)=>{  //a : 代表这一次循环出来的项 ; i : 代表这一次循环出来的相前项的索引; t : 代表的是当前用于循环的数组
    console.log(a,i,t)
    return a*a
})
console.log(x)

 输出结果为:

数组中遍历的方法

3.、filter() 方法

  作用:过滤数组(循环并查找满足条件的项,最后返回所有满足条件的项的数组)

  参数:是一个函数

  返回值:满足条件项的数组 (如果没有满足条件的项则返回空数组)

例如:

let arr = ["1","3","5","7","9","11"]
let x = arr.filter((a,i,t)=>{  //a : 代表这一次循环出来的项 ; i : 代表这一次循环出来的相前项的索引; t : 代表的是当前用于循环的数组
    console.log(a,i,t)
    return a == 3  //此处的等于并非绝对等于“===” ,若想完全相同应该换为绝对等于
})
console.log(x)

输出结果为:

数组中遍历的方法

4、find()方法

  作用:查找满足条件的第一项

  参数:一个函数

  返回值:满足条件的那一项(不是满足条件的项的索引,如果没有满足条件的项,则返回“undefined”)

例如:

let arr = ["1","3","5","7","9","11"]
let x = arr.find((a,i,t)=>{  //a : 代表这一次循环出来的项 ; i : 代表这一次循环出来的相前项的索引; t : 代表的是当前用于循环的数组
    console.log(a,i,t)
    return a == 5  //此处的等于并非绝对等于“===” ,若想完全相同应该换为绝对等于
})
console.log(x)

输出结果为:

数组中遍历的方法

5、reduce()方法

  作用:可以在对项与项进行之间进行相关操作,最后得到一个总和的结果

  参数:(第一个参数(一个函数),第二个参数(初始值)) 

    一个函数的参数(a,i,t,arr1)a :初始值(可以理解为reduce的第二个参数,每次循环的返回结果,给reduce的第二个参数从新赋值)   i :循环的那一项  t :索引  arr1:当前用于循环的数组

例如:

var arr = [1,3,5,7,9,11]
let x = arr.reduce((a,i,t,arr1)=>{
    console.log(a,i,t,arr1)
    return a + i
},0)
console.log(x)

输出结果为:

数组中遍历的方法

也可以利用reduce()方法来返回姓氏等作用

例如:

var arr3 = ["王二","李四","小明"]
let y = arr3.reduce((a,i,t,arr1)=>{
    console.log(a,i,t,arr1)
    return a.concat(i[0])
},[])
console.log(y)

输出结果为:

数组中遍历的方法

6、some()方法

  作用:查找满足条件的项,如果有一个则直接返回true(并不会继续往下执行),否则返回false

  参数:一个函数

  返回值:true/false

例如:

let arr = ["1","3","5","7","9","11"]
let x = arr.some((a,i,t)=>{  //a : 代表这一次循环出来的项 ; i : 代表这一次循环出来的相前项的索引; t : 代表的是当前用于循环的数组
    console.log(a,i,t)
    return a == 5  //此处的等于并非绝对等于“===” ,若想完全相同应该换为绝对等于
})
console.log(x)

输出结果为:

数组中遍历的方法

7、every()方法

  作用:查找每一项是否满足条件,如果有一项未满足则返回直接false(并不会继续往下执行),否则返回true

  参数:一个函数

  返回值:true/false

例如:

let arr = ["1","3","5","7","9","11"]
let x = arr.some((a,i,t)=>{  //a : 代表这一次循环出来的项 ; i : 代表这一次循环出来的相前项的索引; t : 代表的是当前用于循环的数组
    console.log(a,i,t)
    return a%2 == 1  //此处的等于并非绝对等于“===” ,若想完全相同应该换为绝对等于
})
console.log(x)

输出结果为:

数组中遍历的方法