前几天在学习js的时候,碰到了这样一道面试题,要求计算出给你一个随机乱敲的一个字符串,要求在其中找出那个字符出现的次数最多,以及出现的个数。

这你有两种方案,请大家仔细阅读,有可能在你将来的面试中会碰到。

 <!DOCTYPE html>
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
     <title></title>
       <script type="text/javascript">
         //给定一个字符串,需要在其中找出哪个字符出现的次数最多,并且计算出这个字符出现的总次数
         //01自定义一个字符串
         var str = "fjalsfj1fds;lafsafafafasfas";
         /*
         02.JSON定义法类似于直接定义法,JSON定义法就是将直接定义法定义的函数与属性放到大括号中,
         并且去掉属性与函数签名的对象名,把等于号改为了冒号,每行后面改为逗号!
         */
         var json = {};
         //03遍历str字符串
         for (var i = 0; i < str.length; i++) {
             /*04.str.charAt(i):在字符串中取出对应的i处的索引的字符串。
                 判断当前元素是否已经在数组中存在
             */
             if (!json[str.charAt(i)]) {
                 json[str.charAt(i)] = 1;//05给对应数组元素中个数赋值
             } else {
                 json[str.charAt(i)]++;
             }
         }
         var iMax = 0;//出现次数
         var iIndex = "";//元素名称
         for (var i in json) {//重新赋值出现最多的元素
             if(json[i]>iMax){
                 iMax = json[i];
                 iIndex = i;
             }
         }
         alert("出现次数最多的是:"+iIndex+"出现"+iMax+"次");

     </script>
 </head>
 <body>

 </body>
 </html>
 <!DOCTYPE html>
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
     <title></title>
     <script type="text/javascript">
         var str = "adadfdfseffserfefsefseeffffftsdg"; //命名一个变量放置给出的字符串
         var maxLength = 0; //命名一个变量放置字母出现的最高次数并初始化为0
         var result = ''; //命名一个变量放置结果输入   

         while (str != '') { //循环迭代开始,并判断字符串是否为空
             oldStr = str; //将原始的字符串变量赋值给新变量
             getStr = str.substr(0, 1); //用字符串的substr的方法得到第一个字符(首字母)
             eval("str = str.replace(/" + getStr + "/g,'')");

             if (oldStr.length - str.length > maxLength) { //判断原始的字符串的长度减去替代后字符串长度是否大于之前出现的最大的字符串长度
                 maxLength = oldStr.length - str.length; //两字符串长度相减得到最大的字符串长度
                 result = getStr + "=" + maxLength //返回最大的字符串结果(字母、出现次数)
             }
         }
         alert(result) //弹出结果
 </script>
 </head>
 <body>

 </body>
 </html>

希望看完后对大家有帮助,还希望读者如果有更多,更经典的面试题,请发送到我的邮箱18813091329@163.com

js面试题的更多相关文章

  1. 10个常见的Node.js面试题

    如果你希望找一份有关Node.js的工作,但又不知道从哪里入手评测自己对Node.js的掌握程度. 本文就为你罗列了10个常见的Node.js面试题,分别考察了Node.js编程相关的几个主要方面. ...

  2. 所在实习公司的JS笔试题

    在班上无聊的时候看到了一份JS笔试题(我是电面进去的,没做过这份题~~),开始还觉得蛮简单......后来觉得还是很有意思的,贴出来一起看看. 题目一: if(!("a" in w ...

  3. 有点难度的JS面试题

    自己总结了一些JS面试题 希望能够帮助正在找工作的程序猿(●´∀`●) 1.js 实现一个函数对javascript中json 对象进行克隆 var oldObject ="sdf" ...

  4. Node.js面试题之2017

    译者按: 从ECMAScript标准,Node.js语法以及NPM模块角度来看,Node.js的发展让人目不暇接,那么面试题也得与时俱进. 原文: Node.js Interview Question ...

  5. vue.js面试题整理

    Vue.js面试题整理 一.什么是MVVM? MVVM是Model-View-ViewModel的缩写.MVVM是一种设计思想.Model 层代表数据模型,也可以在Model中定义数据修改和操作的业务 ...

  6. 一道JS面试题引发的血案

    刚入职新公司,属于公司萌新一枚,一天下午对着屏幕看代码架构时. BI项目组长给我看了一道面试别人的JS面试题. 虽然答对了,但把理由说错了,照样不及格. 话不多说,直接上题: var a = 1; s ...

  7. js经典试题之常用的方法

    js经典试题之常用的方法 1.下面代码输出的值 let s = "bob" const replaced = s.replace('b', 'l') replaced === &q ...

  8. js经典试题之运算符的优先级

    js经典试题之运算符 1.假设val已经声明,可定义为任何值.则下面js代码有可能输出的结果为: console.log('Value is ' + (val != '0') ? 'define' : ...

  9. js经典试题之ES6

    js经典试题之ES6 1:在ECMAScript6 中,Promise的状态 答案:pending  resolved(fulfilled) rejected 解析: Promise对象只有三种状态: ...

  10. js经典试题之w3规范系列

    js经典试题之w3规范系列 1:w3c 制定的 javascript 标准事件模型的正确的顺序? 答案:事件捕获->事件处理->事件冒泡 解析:先事件捕获从windows > doc ...

随机推荐

  1. Loadrunner关联取参及设置检查点

    Loadrunner关联取参及设置检查点: 获取post的响应值当作参数存储,要在此post请求之上添加 web_reg_save_param("sign", "LB=m ...

  2. JavaScript中的变量及数据类型

    转自:http://blog.csdn.net/mygis2005/article/details/7375419 JavaScript是一种弱类型的语言,变量名.操作符和方法名都区分大小写. 1.变 ...

  3. IOS中在自定义控件(非视图控制器)的视图跳转中 代理方法与代码块的比较

    //代码块与代替代理的设计方法 我就以在自定义视图中(非视图控制器,不能实现视图控制功能),通过代理和代码块两种方法分别实现视图的跳转,进行对比 首先自定义了一个视图,上面有一个已经注册了得BUtto ...

  4. UML活动图与流程图的区别

    http://blog.chinaunix.net/uid-11572501-id-3847592.html UML活动图与流程图的区别 (1).流程图着重描述处理过程,它的主要控制结构是顺序.分支和 ...

  5. NSRunLoop && NSTimer

    新的一年的开始,希望大家一切越来越好,越来越开心快乐!!! 定时器及运行循环 NSRunLoop是iOS消息机制的处理模式 NSRunLoop的主要作用:控制NSRunLoop里面线程的执行和休眠,在 ...

  6. Lambda表达式 和 Expression<T>

    经常用的Lambda表达式 返回的是  Expression<T> 格式 public class ActivityService { private readonly List<A ...

  7. LDA(转发)

    主题模型-LDA浅析 分类: 数据挖掘 机器学习2012-09-03 14:09 24937人阅读 评论(16) 收藏 举报 文档allocationsemanticeach算法网络 上个月参加了在北 ...

  8. Android学习笔记——ListView

    该工程的功能是实现在一个activity中显示一个列表 以下代码是MainActivity.java中的代码 package com.example.listview; import java.uti ...

  9. JAVA基础知识(转)

    本文就java基础部分容易混淆的一些知识点进行了一下总结.因为Java本身知识点非常多,不可能在很短的篇幅就能叙述完,而且就某一个点来讲,如欲仔细去探究,也能阐述的非常多.这里不做全面仔细的论述,仅做 ...

  10. Centos安装Kafka集群

    kafka是LinkedIn开发并开源的一个分布式MQ系统,现在是Apache的一个孵化项目.在它的主页描述kafka为一个高吞吐量的分布式(能 将消息分散到不同的节点上)MQ.在这片博文中,作者简单 ...