1、将一段字符串转成驼峰命名法。

var str = "web-kit-index";
function to(str){
var j = str.split("-");
for(var i=1,len=j.length;i<len;i++){
j[i] = j[i].charAt(0).toUpperCase()+j[i].substring(1);
}
return j.join("");
}
console.log(to(str)); 或 function to(str){
var reg = /-(\w)/g;
return str.replace(reg,function(a,b){
return b.toUpperCase();
}) }
console.log(to(str));

 2、判断一段字符串中出现最多的是哪个字符并且出现了多少次?

var str = "wwwwaaaa";
function max(str){
var obj = {};
for(var i=0,len=str.length;i<len;i++){
if(!obj[str[i]]){
obj[str[i]] = [];
obj[str[i]].push(str[i]);
}else{
obj[str[i]].push(str[i]);
}
}
var num = 0,value;
for(var k in obj){
if(obj[k].length>num){
num = obj[k].length;
value = k;
}
}
return "出现最多的是:"+obj[value][0]+" 出现了:"+num+"次";
}
console.log(max(str)); 或 function max(str){
var s = str.split("").sort().join("");
var reg = /(\w)\1+/g;
var num = 0;
var value = null;
s.replace(reg,function($0,$1){
if(num<$0.length){
num = $0.length;
value = $1;
}
})
return "出现最多的是:"+value+" 出现了:"+num+"次";
}
console.log(max(str));

 3、如果有数组,把他们添加到数组中,并且如果是连续的数字那么把它们添加到一起

var str = "js123werw13weragadsg324ererrer5555";
var num = '';
var arr = [];
for(var i=0;i<str.length;i++){
if(!isNaN(+str[i])){
num += str[i];
if(isNaN(+str[i+1])){
arr.push(+num);
num = "";
}
}
}
console.log(arr);

4、给字符串加千分符,每三位加一个,

var str = "13224242311012101";
function san(){
var first = (str.length)%3;
var s = str.substring(0,first);
var reg = str.substring(first);
var arr = [];
if(first!==0){
arr.push(s);
}
var t = "";
for(var i=0;i<reg.length;i++){
t+=reg[i];
if(i%3===2){
arr.push(t);
t = "";
}
}
return arr.join(","); }
console.log(san(str)); function san(str){
var reg = /(?=(?!\b)(\d{3})+$)/g;
return str.replace(reg,",");
}
console.log(san(str));

 5、交换两个字符串的位置,不允许第三个变量

var a = 12;
var b = 20; a = a + b;
b = a - b;
a = a - b; console.log(a);
console.log(b); 或 var str1 = 'love';
var str2 = 'Js';
str1 = [str1,str2];
str2 = str1[0];
str1 = str1[1]; console.log(str1);
console.log(str2); 方法1:只支持数字

 6、不使用for循环实现一个数字的数组排序。

var num = 10;
function a(num){
var arr = [];
return (function(){
arr.unshift(num);
num--;
if(num!=0){
arguments.callee();
}
return arr;
}());
}
console.log(a(num)); [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] function a(num){
var arr = [];
arr.length = num+1;
arr = arr.join("a");
var arr2 = [];
arr.replace(/a/g,function(){
arr2.unshift(num--);
})
return arr2;
}
console.log(a(num)); [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

 7、打乱数组值的顺序

var arr = [1, 2, 3, 4, 5, 6, 7, 8];
function sort(arr){
for(var i=0;i<arr.length-1;i++){
var cur = Math.floor(Math.random()*(i+1));
var tel = arr[i];
arr[i] = arr[cur];
arr[cur] = tel;
}
return arr;
}
console.log(sort(arr));

JavaScript面试库的更多相关文章

  1. JavaScript面试的完美指南(开发者视角)

    为了说明 JS 面试的复杂性,首先,请尝试给出以下结果: onsole.log(2.0 == "2" == new Boolean(true) == "1") ...

  2. 26个精选的JavaScript面试问题

    译者按: 从各个平台精选整理出26道由浅入深的题目助你面试 原文: Top 26 JavaScript Interview Questions I Wish I Knew 译者: Fundebug 为 ...

  3. 攻破javascript面试的完美指南【译】

    攻破javascript面试的完美指南(开发者视角) 0. 前言 本文适合有一定js基础的前端开发人员阅读.原文是我google时无意发现的, 被一些知识点清晰的解析所打动, 决定翻译并记录下来.这个 ...

  4. ABP(现代ASP.NET样板开发框架)系列之21、ABP展现层——Javascript函数库

    点这里进入ABP系列文章总目录 基于DDD的现代ASP.NET开发框架--ABP系列之21.ABP展现层——Javascript函数库 ABP是“ASP.NET Boilerplate Project ...

  5. Webix JavaScript UI 库可以帮你构建跨平台的HTML5 和 CSS3 程序

    XB 软件公司最近发布了JavaScript UI 库Webix ,其中包含的组件超过45个,用这些组件可以构建跟HTML5 和 CSS3 兼容的程序,这些程序不仅能在个人电脑上运行,还能用在iOS. ...

  6. JavaScript面试时候的坑洼沟洄——表达式与运算符

    上篇博客JavaScript面试时候的坑洼沟洄--数据类型总结了一下JavaScript数据类型几转换的相关知识,很多朋友可能和我一样,买了书后对数据类型啊.运算符啊.语句啊都是扫两眼或直接略过的,自 ...

  7. JavaScript面试时候的坑洼沟洄——数据类型

    前些日子写了篇关于最近找工作的一些感受的博客 找工作的一些感悟--前端小菜的成长,没想到得到了很多园友的共鸣,得到了很多鼓励,也有园友希望我分享一些笔试.面试的经验.我觉得分享一些笔试题没太多价值,对 ...

  8. ECharts-基于Canvas,纯Javascript图表库,提供直观,生动,可交互,可个性化定制的数据可视化图表

    ECharts http://ecomfe.github.com/echarts 基于Canvas,纯Javascript图表库,提供直观,生动,可交互,可个性化定制的数据可视化图表.创新的拖拽重计算 ...

  9. 【精心推荐】几款实用的 JavaScript 图形图表库

    一款好的图表插件不是那么容易找到的.最近项目里需要实现统计图表功能,所以在网上搜罗了一圈,找到一些不错的图表插件,分享大家.众多周知,图形和图表要比文本更具表现力和说服力.这里给大家精心推荐几款实用的 ...

随机推荐

  1. 使用iMovie和Keynote制作App Preview

    App Preview是什么 App Preview就是一段15-30秒的短视频,用来展示你的应用的特性.用户界面.交互方式等内容.在App Store你的应用的详细信息页面里,放在原来的截图之前.体 ...

  2. javascript实例——时间日期篇(包含5个实例)

    本来想在网上找一些js实例来练练手,结果发现一本书<突破JavaScript编程实例五十讲>,看了下内容还不错,就下了下来: 后面又下了该书籍的源码,一看才发现这本书编的日期是2002年的 ...

  3. Atom插件安装及常用插件推荐

    Atom是个不错的文本编辑工具,也该可以改造成IDE用,主要靠插件实现各种扩展功能. 因为网络环境的原因,在线安装不容易成功,一般选择手动安装. 以下是我搜索网络资源后总结的手动安装方法. Atom插 ...

  4. Help Viewer 2.2 独立运行

    "C:\Program Files (x86)\Microsoft Help Viewer\v2.2\HlpViewer.exe" /catalogName VisualStudi ...

  5. iOS crash 异常捕获

    // //  UncaughtExceptionHandler.m //  UncaughtExceptions // //  Created by Matt Gallagher on 2010/05 ...

  6. 分享一些无特征PHP一句话

    分享些不需要动态函数.不用eval.不含敏感函数.免杀免拦截的一句话.(少部分一句话需要php5.4.8+.或sqlite/pdo/yaml/memcached扩展等) 原理:https://www. ...

  7. ubuntu 16.04 tmux

    旧的鼠标选项 setw -g mode-mouse on set-option -g mouse-resize-pane on set-option -g mouse-select-pane on s ...

  8. SVO实时全局光照优化(里程碑MK2):Sparse Voxel Octree based Global Illumination (SVO GI)

    自主实现的实时渲染引擎,对标对象ue4/ce5,超越u3d/klayge.MK2版本侧重于质量与速度的均衡,以下上传示范均为实测截图,均为全分辨率(网页上显示缩小了)1080p/60fps.

  9. Git教程学习(五)

    14. 解决冲突 14.1. 场景 当分支A和分支B在同一个文件上都有修改时会出现冲突.常见的情况是从master分支的基础上生成了新分支dev,然后在dev上进行了修改并add&commit ...

  10. Turn off swi-prolog protocol output of ANSI terminal control sequences

    To save a record of program execution in prolog, we use the special predicates: protocol and noproto ...