关于javascript:手写32javascript巩固一下子JS基础

一。数组扁平化

概念:是指将一个多维数组变为一个一维数组。    
    var arr=[1,[2,[3,[4,5]]],6];
    ==>[1, 2, 3, 4, 5, 6]
    办法一:arr.flat(Infinity);
    办法二:JSON.parse("["+JSON.stringify(arr).replace(/\[|]/g,"")+"]")
    办法三: const arrCon=[];
             const fn=arr=>{
                for(let i=0;i<arr.length;i++){
                    if(Array.isArray(arr[i])){
                        fn(arr[i]);
                    }
                    else{
                        arrCon.push(arr[i]);
                    };
                };
              fn(arr);

有不懂flat()小伙伴们能够点击flat()

二。数组去重

var arr=[1,1,2,2,4,4,null,null];
==>[1,2,4,null]
  办法一:Arry.from(new Set(arr));
  办法二:双层for循环
   function FFOR(arr){
          for(var i=0;i<arr.length;i++){
            for(var j=i+1;j<arr.length;j++){
                if(arr[i]===arr[j]){
                    arr.splice(j,1)
                    j--
                }
            }
          }
          return arr;
        };
  办法三:filter()+indexOf()
         function ffor(arr){
            return arr.filter(item,index,arr){
                return arr.indexOf(item,0)===index;
               }
         };
  办法四:indexOf
         function FFOR(arr){
               const arrCon=[];
               for(let i=0;i<arr.length;i++){
                    if(arrCon.indexOf(arr[i])===-1){
                        arrCon.push(arr[i])
                    }
               }
               
               return arrCon
         }   

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理