JS数组的循环方法区别

359 阅读1分钟
  1. forEach():不能使用return终止循环,使用break会报错

        // let arr = [1,2,3,4,5,6]
            // //对数组进行循环,相当于for循环,没有返回值
            // let result = arr.forEach((item,index,arr)=>{
            //     console.log(item);
            //     console.log(index);
            //     console.log(arr)
            //     return item
            // })
            // console.log(result)
    
  2. map():可以使用return,返回一个新的数组,还可以进行计算

    // let arr2 = ['香蕉','苹果','柠檬']
            // let result2 = arr2.map((item,index,arr)=>{
            //     let str = index + item + index;
            //     return str;
    
            // })
            // console.log(result2)
    
  3. filter():将想要的内容筛选出来,获得想要的数组

    // let arr3 = [1,2,3,4,5,6,7]
    
            // let result3 = arr3.filter((item,index)=>{
            //     if(item % 2 == 0){
            //         return true
            //     }else{
            //         return false
            //     }
            // })
            // console.log(result3)
    
  4. reduce():对数组进行整合,对每一项进行整合后,返回一个内容

    // let arr4 = [1,2,3,4,5,6,7,8,9];
            // let result4 = arr4.reduce((pre,next,index)=>{
            //     console.log(pre);
            //     console.log(next);
            //     console.log(index);
            //     return pre + next;
    
            // },0)
            // console.log(result4)
    
  5. for...of与for...in:for...of可以循环数组和字符串,但是不能循环对象,可以break,for...in可以循环遍历对象

       // let obj = {
            //     name: "老李",
            //     type: "聪明",
            //     content: "web"
    
            // },
            // for(key in obj ){
            //     console.log("key: " + key + ";value:" + obj[key])
            // }
            //let arr5 = ["老李","老韩","老赵"]
            //for(let item of arr5) {
              //  console.log(item)
            }
    
  6. some():遍历数组的每一个元素,如果返回true就终止循环

    let array = [1, 2, 3, 4];
    let temp = array.some((item, index, array) => {
      return item > 5;
    });
    console.log(temp);  // true
    
  7. every():遍历数组的每一项,如果都是true,就返回true,只要有一个false,就返回false

    let array = [1, 2, 3, 4];
    let res = array.every((item, index, array) => {
      return item > 1;
    });
    console.log(res);    // false;
    
  8. 总结

some()和every()返回的是true和false,map()和filter()返回一个新数组,不同的是map()可以进行计算,filter()可以进行筛选。reduce()可以进行数组前后两项的计算,返回最终的结果。forEach()的话无返回值,for...in可以遍历对象,for...of不可以。