1,for循环
for循环是最基础并且是比较常用的一种
let arr=[1,2,3,4,5]for(let i=0;i<arr.length;i++){//分别输出1,2,3,4,5console.log('arr'+arr[i])}
2,for...of循环
使用for...of循环可以遍历数组,并且直接获取里面的每个元素
let arr=[1,2,3,4,5]for(let element of arr){console.log(element)//1,2,3,4,5}
3,for...in
可以遍历对象或数组,遍历数组时key为数组下标
let arr=[1,2,3,4,5]for(let key in arr){//输出0,1,2,3,4console.log(key)}
4,every()
every,filter,forEach,map,some它们分别接受3个参数:数组项的值,数组中的索引位置和数组对象本身
对数组中的每一项运行给定的函数,如果每一项都返回true,则结果返回true
let arr=[1,2,3,4,5]let result = arr.every(function (item,index,array) {return (item>3)})console.log(result)//false
如果有一项不符合要求就返回false
5,filter()
对数组中的每一项运行给定的函数,返回该函数会返回true项组成的新数组(它会返回一个新的数组,并不会影响原来的数组.)可以用来过滤某些需要的数据。
let arr=[1,2,3,4,5]let result = arr.filter(function (item,index,array) {return (item>3)})console.log(result)//[4,5]
6,forEach()
对数组中的每一项运行给定的函数,这个方法没有返回值。无法中途跳出forEach循环,break命令或return命令都不能生效。
let arr=[1,2,3,4,5]arr.forEach(function (item,index,array) {//分别打出每个元素和索引console.log(item,index)})
7,map()
对数组中的每一项运行给定函数,返回每次函数调用结果组成的新数组,并不会影响原来的数组。
let arr=[1,2,3,4,5]let result=arr.map(function (item,index,array) {return item+1})console.log(arr)//[1,2,3,4,5]console.log(result)//[2,3,4,5,6]
8,some()
对数组中的每一项运行给定的函数,如果该函数的任何一项都返回true(只要找到一个符合条件的就行),则返回true,结果为
let arr=[1,2,3,4,5]let result=arr.some(function (item,index,array) {return item>3})console.log(result)//truelet arr=[1,2,3,4,5]let result=arr.some(function (item,index,array) {return item>8})console.log(result)//false
9,find()
返回第一个符合条件的元素,没有找到返回undefined
//第一种let arr=[1,2,3,4,5]let result = arr.find(function (value) {return value===10})console.log(result)//3//第二种let arr=[1,2,'张三',4,5]let result = arr.find(function (value) {return typeof value==='string'})console.log(result)//张三
10,findIndex()
返回第一个符合条件元素的索引,没有找到返回-1
//第一种let arr=[1,2,'张三',4,5]let result = arr.findIndex(function (value) {return value===2})console.log(result)//1//第二种let arr=[1,2,'张三',4,5]let result = arr.findIndex(function (value) {return value===10})console.log(result)//-1
11,reduce()和reduceRight()
这两个方法都会迭代数组中的所有项,然后返回一个最终的值。reduce方法从数组的第一项开始,一直遍历到最后。面reduceRight从数组的最后一项开始,一直遍历到最开始的第一项。接受4个参数,前一个值,当前值,数组项的索引和数组本身。
这个函数返回的任何值都会作为第一个参数自动传给下一项,第一次迭代发生在数组的第二个元素上(第一次就从第二个元素开始)因此第一个参数就是数组的第一项,第二个参数就是数组的第二项。
解释:第一次遍历从2开始,用1和2相加,第二次遍历把第一次的结果和3相加,以此类推,一直到最后一个。reduceRight的用法和reduce相反,从后往前开始。
//reducelet arr=[1,2,3,4,5]let result = arr.reduce(function(prev,cur,index,array){return prev+cur})console.log(result)//15//reduceRightlet arr=[1,2,3,4,5]let result = arr.reduceRight(function(prev,cur,index,array){return prev+cur})console.log(result)//15
对可能用到的做一个总结,做个笔记。