for:正常循环(同步的循环)
break、continue终止循环
for (let index = 0; index < array.length; index++) {const element = array[index];}
forEach:正常循环(异步的循环)
通过try异常抛出终止循环,return可以跳过本次循环
//正常循环
array.forEach(element => {});
//异常抛出终止循环
try {arr.forEach(function (curItem, i) {if(curItem === 1) return;console.log(curItem)if (curItem === id) {throw Error(); //满足条件,跳出循环}})} catch (e) {}
every:循环有返回值
有返回值,一个条件不满足就返回false,并不继续循环
let flag=arr.every(item=>{return item===1
})
some:循环有返回值
有返回值,一个条件满足就返回true,并不继续循环
let flag=arr.some(item=>{return item===1
})
indexOf(正向查找)、lastIndexOf(反向查找):可以用于字符串和一维数组的判断
:反向查找
可以判断数组或字符串内是否包含某个值,返回值是下标,找到返回位置下标,没找到返回-1
let str='aaaaab'
let index = str.indexOf('b')
let index = str.lastIndexOf('b')
includes:可以用于字符串和一维数组的判断
可以判断数组或字符串内是否包含某个值,返回值是下标,找到true,没找到返回false
let str='aaaaab'
let index = str.includes('b')
filter:过滤(vue2可以使用,vue3弃用(应该是弃用))
将数组内满足条件的对象返回出去,返回出一个新的数组
let arr = 数组.filter((e) => e.name != '测试')
map:循环返回新数组
可以对遍历项操作,且返回新的数组,元素组不改变
let arr=arr.map(item=>{return item=item+'_'
})
while:正常循环
通过判断条件是否满足,执行是否继续循环
let i = 1;while (i <= 10) {i++;}
do while:正常循环
先执行循环,再判断下次循环是否继续(如果一开始条件就不满足,他也会执行一次)
let i=1
do {i++ } while (i<=10);
reduce:累计计算与一维数组内容拼接
将一个一维数组拼到一块,可以计算相加值,也可以将数字全部拼接成字符串
let arr=[1,2,3,4]
//计算数组相加值
let data=arr.reduce((total,prev,index,arr) =>{return total +prev;});
//data返回值10//将数组内容拼接成字符串
let data=arr.reduce((total,prev,index,arr) =>{return total +prev;},'');
//data返回值1234
for...in:循环出key值
不推荐遍历数组,一般用来遍历对象 毕竟key都给你输出了
let list = ['a', 12, 'c', 'd', 'e', 'a'];
for(let key inlist){console.log(list[key]);}
//'a', 12, 'c', 'd', 'e', 'a'
find:获取数组符合条件的第一个值,如果没有找到返回undefined
let list = ['a', 12, 'c', 'd', 'e'];const result = list.find((item,index) =>{return item === 'a'})console.log(result) // a
findIndex:获取数组符合条件的第一个值得索引,如果没有找到就返回-1
let list = ['a', 12, 'c', 'd', 'e','a'];const result= list.findIndex((item,index) =>{return item === 'a'})console.log(result)//0
for...of:可以循环map与set结构
let list = ['a', 12, 'c', 'd', 'e', 'a'];for(let s of list) {console.log(s);}//'a', 12, 'c', 'd', 'e', 'a'