Allenxing
day day up
随笔 - 28  文章 - 0  评论 - 219  阅读 - 54460
求关注

【javascript 面试笔试】1、几道笔试题

    今天想起来几道javascript的面试题,大家做做看看,有别的思路可以在下面写出来,大家交流一下

    (1) 将多维数组转化成一个一位数组,例如[1,[2,3],[4,5,[6,7]]]转化成[1,2,3,4,5,6,7],答案在下面,主要就是利用递归

    复制代码
    function test(array){
        var newArray = [];
        for (var i=0,length = array.length - 1; i <= length; i++) {
            if(array[i] instanceof Array){//判断是不是数组
                newArray = newArray.concat(test(array[i]));//递归调用
            }else{
                newArray.push(array[i]);
            }
        }; 
        return newArray;
    }
    复制代码

    (2) 求数组的最大维数,即一共嵌套了多少层,例如[1,2,[3,[4,5,[6]],[7,[8]]]] 一共嵌套了4层,还是利用递归,主要代码在下面

    复制代码
    function getDim(array){
        var dim = [];
        for (var i =0,length = array.length - 1; i <= length; i++) {
            if(array[i] instanceof Array){
                dim[i] = getDim(array[i]) + 1;//是数组就加1
            }else{
                dim[i] = 1;
            }
        };
        return (dim.sort(function(a,b){return a-b})).pop();//返回最大的维数
        //或者这样
        //return Math.max.apply(null,dim);
    }
    复制代码

    (3)查找字符串中出现最多的字符和个数?   例如:sdjksfssscfssdd  -> 字符最多的是s,出现了7次,这个主要就是利用replace函数来实现的,还可以用普通的方式

    复制代码
    var str = "sdjksfssscfssdd";
    str = str.split("").sort().join("");
    var count = 0;
    var val;
    str.replace(/(\w)\1*/g,function(arg0,arg1){
        if(arg0.length > count){
          count = arg0.length;
          val = arg1;
        }
    });    
    console.log(val+" 出现了"+count+" 次");
    复制代码

     这个就是先按照字字母排序,排成cdddffjksssssss这样的形式,之后找出重复次数最多的字母。

    posted on   allenxing  阅读(1660)  评论(4编辑  收藏  举报
    编辑推荐:
    · Linux系列:如何用 C#调用 C方法造成内存泄露
    · AI与.NET技术实操系列(二):开始使用ML.NET
    · 记一次.NET内存居高不下排查解决与启示
    · 探究高空视频全景AR技术的实现原理
    · 理解Rust引用及其生命周期标识(上)
    阅读排行:
    · 单线程的Redis速度为什么快?
    · 展开说说关于C#中ORM框架的用法!
    · 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
    · Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
    · SQL Server 2025 AI相关能力初探

    点击右上角即可分享
    微信分享提示