微客导航 »
文章资讯 »
js遍历详解(forEach, map, for, for...in, for...of)
js遍历详解(forEach, map, for, for...in, for...of)
forEach
es5出来的方法,这是我在react中用的最多的遍历方法之一,用法如下:
models.forEach(model=>app.model(model));
dva里面经常这么写。
写法很简单,经常用于通过这个数组内的数据创造新的结构,但是forEach的问题在于它不能跳出循环。
map
也是用的最多的方法之一,用法如下
{data.map(d=>(
{d.currency.toUpperCase()}
))}
react里面经常这么写。
constvalue=[1,22,4,5].map(d=>d+1);
value;//[2,23,5,6]
用于改变一个数组内容,相当于改变了原数组
for...in
for(letpropinobj){
if(obj.hasOwnProperty(prop)){
//继续操作prop和obj
}
}
for...in也可以用于遍历数组,但是不推荐
for...of
ES6中加了一个新的遍历方式,主要是用来弥补forEach和for...in的短板,它还可以遍历字符串、map对象、set对象、generator对象。
注意:它只能遍历带有iterable属性的对象,所以不能遍历对象,除非刻意给object加上一个iterable属性。
这个老厉害了!
Map
letiterable=newMap([["a",1],["b",2],["c",3]]);
for(let[key,value]ofiterable){
console.log(value);
}
//1
//2
//3
for(letkeyofiterable){
console.log(key);
}
//[a,1]
//[b,2]
//[c,3]
Set
letiterable=newSet([1,1,2,2,3,3]);
for(letvalueofiterable){
console.log(value);
}
//1
//2
//3
Generator
function*fibonacci(){//ageneratorfunction
let[prev,curr]=[0,1];
while(true){
[prev,curr]=[curr,prev+curr];
yieldcurr;
}
}
for(letnoffibonacci()){
console.log(n);
//truncatethesequenceat1000
if(n>=1000){
break;
}
}
以上就是本次介绍的全部知识点内容,感谢大家对毛票票的支持。