美文网首页
Js数组遍历对原数组的影响及返回值

Js数组遍历对原数组的影响及返回值

作者: lovelydong | 来源:发表于2021-03-15 19:29 被阅读0次

    1.map和forEach

    let originalArr=[1,2,3,4,5,6,7,8,9,10];
    console.log('------------map---------------');
    let arrMap= originalArr.map(item=>{
         return item*2;
     })
     console.log('original',originalArr);
     console.log('result',arrMap);
     
     console.log('------------forEach---------------');
    let arrForEach=originalArr.forEach(item=>{
         return item*2;
     })
     console.log('original',originalArr);
     console.log('result',arrForEach);
    
    image.png

    结果:map和forEach都不改变原数组,map返回一个新数组,forEach没有返回值

    2.some和every及filter

    let originalArr=[1,2,3,4,5,6,7,8,9,10];
     console.log('------------filter---------------');
    let arrFilter= originalArr.filter(item=>{
         return item>2;
     });
     console.log('original',originalArr);
     console.log('result',arrFilter);
     console.log('------------some---------------');
     let arrSome=originalArr.some(item=>{
          return item>2;
     })
     console.log('original',originalArr);
     console.log('result',arrSome);
     console.log('------------every---------------');
     let arrEvery=originalArr.every(item=>{
          return item>2;
    })
    console.log('original',originalArr);
    console.log('result',arrEvery);
    
    image.png

    结果:三者都不改变原数组,filter返回满足条件的新数组,some和every返回bool值,some只要y有满足条件的项就返回True,every要全部满足判定条件才会返回true

    验证是否可以中断循环

    let originalArr=[1,2,3];
     console.log('------------filter---------------');
    let arrFilter= originalArr.filter((item,index)=>{
        console.log(item);
         if(index==1){
           return false;
         }
          return true;
     });
     console.log('original',originalArr);
     console.log('result',arrFilter);
     console.log('------------some---------------');
     let arrSome=originalArr.some((item,index)=>{
        console.log(item);
        if(index==1){
            return false;
        }
         return true;
     })
     console.log('original',originalArr);
     console.log('result',arrSome);
     console.log('------------every---------------');
     let arrEvery=originalArr.every((item,index)=>{
         console.log(item);
        if(index==1){
            return false;
        }
        return true;
    })
    console.log('original',originalArr);
    console.log('result',arrEvery);
    
    image.png

    经过以上测试得知

    1.所有遍历方法都不会影响原数组

    2.map和filter会返回一个新的数组

    3.forEach没有返回值

    4.some和every返回bool值且能提前中断循环

    转载自https://juejin.cn/post/6844903817020964877

    相关文章

      网友评论

          本文标题:Js数组遍历对原数组的影响及返回值

          本文链接:https://www.haomeiwen.com/subject/mlclcltx.html