js循环遍历
1. for 循环 arr/str
let cars = ["BMW", "Volvo", "Saab", "Ford"];
for (var i = 0; i < cars.length; i++) {
console.log(cars[i]);
}
例:
for (;cars[i];)
{
document.write(cars[i] + "<br>");
i++;
}
2. for/in 循环 arr,obj
let cars = ["BMW", "Volvo", "Saab", "Ford"];
let cars = {fname:"Bill",lname:"Gates",age:56};
for(let key in cars){
console.log(key,cars[key])
}
3. while 循环 arr
let i = 0,txt = '';
while (i < 5)
{
txt = txt + "The number is " + i + "<br>";
console.log(txt);
i++;
}
例:
while (cars[i])
{
document.write(cars[i] + "<br>");
i++;
}
4. do/while 循环 arr
let i = 0,txt = '';
do
{
txt = txt + "The number is " + i + "<br>";
console.log(txt);
i++;
}
while (i < 5);
5. foreach 循环 arr (不能响应continue,break,return)
cars.forEach(element => {
console.log(element)
});
cars.forEach((item, index, arr) => {
console.log(item,index,arr) //内容,下标,元素组
});
6. map 循环 arr
let cars = ['arm','leg'];
let array = cars.map((item,index,arr)=>{
return item + 2;
})
console.log(array)
7. for...of 循环 arr/map/set/str
for (let iterator of cars) {
console.log(iterator)
}
8. filter 循环 arr (数据过滤返回新数组)
let arr = cars.filter(item=>{
return item == 'arm';// return item.age > 10 ;
});
console.log(arr)
9. every 循环 arr (数组全部验证,所有都符合返回true)
let result = cars.every((item,index,arr)=>{
return item > 3;
})
10. some 循环 arr (数组全部验证,所有都符合返回true)
let result = cars.some((item,index,arr)=>{
return item > 3;
})
11. reduce 循环 arr (数据之间的运算,从左到右,10是initialValue初始值,默认是数组第一项)
let result = cars.reduce((initialValue,currentValue,index,arr)=>{
return initialValue + currentValue;
},10)
12. reduceRight 循环 arr(与reduce相同,执行顺序相反)
13. find 循环 arr (与filter相同,但只找到符合条件的第一项,没找到返回undefind)
14. findIndex 循环 arr (与find相同,但找下标)
15. keys、values、entries arr (返回遍历器对象,用for...of进行遍历)
keys 返回元素索引,values 返回元素本身,entries 返回元素和下标
for(let cc of arr.keys/values()){
console.log(cc);
}
for(let [ind,ele] of arr.entries()){
console.log(cc);
}