总结js循环的几种方式及适用场景

因为js中循环数据的方法太多了,很多时候容易弄混它们之间的区别,无法找到更适合的方法从而多走弯路一些,以下是我总结的一些常用的方法,可供大家参考学习.....
1.for循环: 循环数组,无返回值

let arrayList = [1,2,3,4] for(let a =0; a

2.forEach() : 循环数组,无返回值,有作用域
let arrayList = [1,2,3,4] arrayList.forEach(item=>{ })

forEach循环是for循环的简化版
1.在数据长度固定且不需要计算的情况下,for循环的计算效率高于forEach
2.在数据比较复杂,且数组长度不固定的情况下,用forEach则更为好
3.forEach是函数,那么就存在函数作用域,而for循环则不存在函数作用域问题,因此在某些情况下则要自己权衡利弊了
3.filter()循环:循环数组,有返回值,返回一个新的过滤之后的数组
let arrayList = [1,2,3,4] let newArray= arrayList.filter(item=>{ returnitem>1 }) console.log(newArray) // [2,3,4]

4.map()循环:循环数组,返回一个新的数组
let arrayList = [1,2,3,4]1. let newArray= arrayList.map(item=>{ returnitem>1 })2. let newArray1= arrayList.map(item=>{ returnitem+1 }) console.log(newArray) // [false,true,true,true] console.log(newArray1) //[2,3,4,5]

从这里我们便可以看出map循环和filter循环最大的区别
filter,不能改变原数组值,只能对原来的数组进行过滤,返回的一个新的数组
map,改变原来数据的值,返回一个新的数组
5.some()循环:循环数组,检测到是否有某个值满足条件,有返回值true,否则返回false
let arrayList = [1,2,3,4] let flag = arrayList.some(item=>{ returnitem >1 }) console.log(flag) // true

6.every() 循环:循环数组,检测所有值都否都大于某个值。如果是就返回true,否则false
let arrayList = [1,2,3,4] let flag = arrayList.some(item=>{ returnitem >1 }) console.log(flag) // false

【总结js循环的几种方式及适用场景】some和every的区别
some循环,检测数据中是否有某个值满足这个条件,如果有,则返回true,如果都不满足否则返回false
every循环,检测数组中是否每个值都满足这个条件,如果都满足,才返回true,否则任何一个不满足,就会返回false
7.for...in... :循环对象,无返回值
let obj = { name:'chen', age:10, sex:1 }for(let key in obj){ console.log(key) //nameagesex console.log(obj[key]) // chen 10 1 }

    推荐阅读