JavaScript 中的六种循环方法
Javascript中的遍历循环
1.for循环
对于数值索引的数组来说,可以使用标准的for循环来遍历值
constarr=[1,2,3,4]; for(leti=0;i2.for...in循环
for...in循环可以用来遍历对象的可枚举属性列表(包括原型链上的属性)
constmyObject={}; Object.defineProperty(myobject,"a",{ //可枚举 enumerable:true, value:2, }) Object.defineProperty(myobject,"b",{ //不可枚举 enumerable:false, value:2, }) for(letkinmyObject){ console.log(k,myObject[k]) //a2 } //使用for...in循环是无法直接获得属性值的,因为它实际遍历的是对象中的所有可枚举属性, //所以你需要手动获得属性值.在数组上应用for...in循环,不仅仅会包含所有数值索引,还会包含所有可枚举属性.
所以最好在对象上应用for...in循环。如果要遍历数组最好使用传统的for循环来遍历.
3.for...of循环
1.ES6新增的for...of循环
constarr=[1,2,3]; for(letvalueofarr){ console.log(value) //1 //2 //3 }for...of循环首先会向所有被访问的对象请求一个迭代器对象,然后通过调用迭代器对象的next()方法来遍历所有返回值
在数组中有内置的@@iterator,因此for...of可以直接应用在数组上。
使用内置的@@iterator遍历数组
constarr=[1,2,3]; //获取数组中的iterator对象:使用ES6中的符号Symbol.iterator来获取对象的@@iteraotr内部属性. //@@iterator本身不是一个迭代器,而是一个返回迭代器对象的函数。 constit=arr[Symbol.iterator](); it.next();//{value:1,done:false} it.next();//{value:2,done:false} it.next();//{value:3,done:false} it.next();//{done:true} //调用迭代器的next()方法会返回形式为{value:..,done:..}的值; //value为当前的值,done是一个布尔值,表示是否还存在可以遍历的值2.给对象定义@@iterator
constmyObject={ a:2, b:3 } Object.defineProperty(myObject,Symbol.iterator,{ enumerable:false, writeable:false, configurable:true, value:function(){ leto=this; letidx=0; //对象中的属性数组 letks=Object.keys(o); return{ value:o[ks[idx++]], done:(idx>ks.length); } } }) constit=myObject[Symbol.iterator](); it.next();//{value:2,done:false} it.next();//{value:3,done:false} it.next();//{done:true} for(letvalueofmyObject){ console.log(value); } //2 //34.foreach(...)
**forEach()**方法对数组的每个元素执行一次给定的函数。
constarr=['a','b','c']; arr.forEach(element=>console.log(element)); //a //b //carr.forEach(callback(currentValue[,index[,array]])[,thisArg])5.some(...)
some()是对数组中每一项运行给定函数,如果该函数对任一项返回true,则返回true。
vararr=[1,2,3,4,5,6]; console.log(arr.some(function(item,index,array){ console.log('item='+item+',index='+index+',array='+array); returnitem>3; })); //item=1,index=0,array=1,2,3,4,5,6 //item=2,index=1,array=1,2,3,4,5,6 //item=3,index=2,array=1,2,3,4,5,6 //item=4,index=3,array=1,2,3,4,5,6 //true6.every(...)
every()是对数组中每一项运行给定函数,如果该函数对每一项返回true,则返回true。
vararr=[1,2,3,4,5,6]; console.log(arr.every(function(item,index,array){ console.log('item='+item+',index='+index+',array='+array); returnitem>3; })); //item=1,index=0,array=1,2,3,4,5,6 //false以上就是JavaScript中的六种循环方法的详细内容,更多关于JavaScript循环的资料请关注毛票票其它相关文章!