js遍历终极大法--再也不用苦逼的for循环了
while循环
while后面跟循环条件和执行语句,只要满足条件,就会一直执行里面的执行
var i = 0 while(i<10){ console.log(i) i++ }
do...while循环
与while相似,但是他会先执行一次,再做判断条件
var i=0 do{ console,log(i) i++ }while(i<10)
苦逼for循环
这个不用解释吧
var arr = [0,1,2,3] arr.forEach((item,index)=>{ console.log(`下标${index}的数为${item}`) })
for...in循环
一般用来遍历对象的属性,遍历数组的话拿到的是下标
var obj = {name:'snail',age:18} for(var key in obj){ console.log(key) }
for...of循环
相对可以,直接拿到遍历值
var str = 'snail' for(var item of str){ console.log(item) }
Jquery的遍历大法
1、选择器+遍历
$('div').each(function (i){ i就是索引值 this 表示获取遍历每一个dom对象 });
2、选择器+遍历
$('div').each(function (index,domEle){ index就是索引值 domEle 表示获取遍历每一个dom对象 });
3、更适用的遍历方法
1)先获取某个集合对象
2)遍历集合对象的每一个元素
var d=$("div"); $.each(d,function (index,domEle){ d是要遍历的集合 index就是索引值 domEle 表示获取遍历每一个dom对 });
高级推荐 函数编程
map遍历大法
map方法将数组的所有成员依次传入参数函数,然后把每一次的执行结果组成一个新数组返回。
该函数调用时,map方法向它传入三个参数:当前成员、当前位置和数组本身。
注意:是返回一个新数组,而不会改变原数组。
var arr = [0,1,2,3] arr.map((item)=>{ return item*2 })
filter()过滤循环
顾名思义就是过滤掉不要的数据
filter方法用于过滤数组成员,满足条件的成员组成一个新数组返回。
它的参数是一个函数,所有数组成员依次执行该函数,返回结果为true的成员组成一个新数组返回。该方法不会改变原数组。
var arr = [0,4,2,3,5] arr.filter((item)=>{ return (item>3) })
some(),every()遍历
统计数组是否满足某个条件,这两个方法返回一个布尔值,表示判断数组成员是否符合某种条件。
它们接受一个函数作为参数,所有数组成员依次执行该函数。该函数接受三个参数:当前成员、当前位置和整个数组,然后返回一个布尔值。
some方法是只要一个成员的返回值是true,则整个some方法的返回值就是true,否则返回false。
every方法则相反,所有成员的返回值都是true,整个every方法才返回true,否则返回false。两相比较,some()只要有一个是true,便返回true;而every()只要有一个是false,便返回false.
这两个方法在实际开发中,大有可用之处。比如在判定用户是否勾选了不可操作的数据,或者是否勾选了一条可以操作的数据可以使用这两个方法遍历循环数组。
reduce()遍历--相对于不好理解
reduce方法第一个参数是一个函数。该函数接受以下四个参数。
1.Accumulator(累计器)
2.Current Value(当前值)
3.Current Index(当前索引)
4.Source Array(源数组)
函数的返回值分配给累计器,该返回值在数组的每个迭代中被记住,并最后成为最终的单个结果值。
这四个参数之中,只有前两个是必须的,后两个则是可选的。
参考文章:腓腓无忧