js常见面试题
1、大小写转化,将字符串转化成驼峰的方法
例:border-bottom-color转化为:borderBottomColor
var str="border-bottom-color";
方法一:字符串处理方式
function change(str){
var arr=str.split('-');//[border,bottom,color]
for(var i=1;i<arr.length;i++){
arr[i]=arr[i].charAt(0).toUpperCase()+arr[i].substring(1);
}
return arr.join('');
}
方法二:正则表达式
function change(str){
var reg=/-(\w)/g;
return str.replace(reg,function($0,$1){
return $1.toUpperCase();
});
}
2、查找字符串中出现最多的字符和个数
方法一:字符串处理方式
var str="aasgdfsssaaaaaa338"
function select(str){
var obj={};
var num=0;
var value="";
for(var i=0;i<str.length;i++){
if(!obj[str[i]]){
obj[str[i]]=[];
}
obj[str[i]].push(str[i]);
}
for(var attr in obj){
if(num<attr.length){
num=attr.length;
value=obj[attr[0]];
}
}
return "最多的字符是"+value+"个数为"+num;
}
方法二:正则表达式
function select(str){
var arr=str.split('');
arr.sort();
str=arr.join('');
var reg=/(\w)\1+/g;
var num=0;
var value=0;
str.replace(reg,function($0,$1){
if(num<$0.length){
num=$0.length;
value=$1;
}
});
return "最多的字符是"+value+"个数为"+num;
}
3、给字符串加千分符
var str="1263544636322";
方法一:
function sep(str){
var n=str.length%3;
var pre='';
var arr=[];
if(n!=0){
pre=str.substring(0,n);
arr.push(prev);
}
str=str.substring(n);
var temp='';
var now=0;
for(var i=0;i<str.length;i++){
now++;
temp+=str[i];
if(now==3){
arr.push(temp);
temp='';
now=0;
}
}
return arr.join(',');
}
方法二:正则方法
function sep(str){
var re=/(?=(?!\b)(\d{3})+$)/g;
return str.replace(re,',');
}
4、返回一个只包含数字类型的一个数组
var str="js123asgs78ajajajd653" --->[123,78,653]
方法一:
function findNum1(str) {
var arr=[];
var tmp='';
for(var i=0;i<str.length;i++){
if(str.charAt(i)<='9'&&str.charAt(i)>='0'){
tmp+=str.charAt(i);
}else {
if(tmp){
arr.push(tmp);
tmp='';
}
}
}
if(tmp){
arr.push(tmp);
}
return arr;
}
方法二:正则表达式
function findNum2() {
return str.match(/(\d+)/g);
}
js常见面试题的更多相关文章
- vue.js常见面试题及常见命令介绍
Vue.js介绍 Vue.js是JavaScript MVVM(Model-View-ViewModel)库,十分简洁,Vue核心只关注视图层,相对AngularJS提供更加简洁.易于理解的API.V ...
- 前端JS常见面试题(代码自撸)
题目一示例: 适用于子数组等长度及不等长度. let arr = [ [1,2,3], [5,6,7,8], [9,10,11,12,13] ] function arrayDiagonal(arr) ...
- JS常见面试题总结-真实被问到的!
1.判断数据类型有几种方法 console.log(typeof 'abc') // string console.log(Object.prototype.toString.call('abc')) ...
- JS常见面试题,看看你都会多少?
1. 如何在ES5环境下实现let 这个问题实质上是在回答let和var有什么区别,对于这个问题,我们可以直接查看babel转换前后的结果,看一下在循环中通过let定义的变量是如何解决变量提升的问题 ...
- Web开发的常见面试题HTML和HTML5等
作为一名前端开发人员,HTML,HTML5以及网站优化都是必须掌握的技术,下面列举一下HTML, HTML5, 网站优化等常见的面试题: HTML常见面试题: 1. 什么是Semantic HTML( ...
- 整理的最全 python常见面试题(基本必考)
整理的最全 python常见面试题(基本必考) python 2018-05-17 作者 大蛇王 1.大数据的文件读取 ① 利用生成器generator ②迭代器进行迭代遍历:for line in ...
- PHP常见面试题汇总(二)
PHP常见面试题汇总(二) //第51题:统计一维数组中所有值出现的次数?返回一个数组,其元素的键名是原数组的值;键值是该值在原数组中出现的次数 $array=array(4,5,1,2,3,1, ...
- 整理的最全 python常见面试题
整理的最全 python常见面试题(基本必考)① ②③④⑤⑥⑦⑧⑨⑩ 1.大数据的文件读取: ① 利用生成器generator: ②迭代器进行迭代遍历:for line in file; 2.迭代 ...
- 【javascript常见面试题】常见前端面试题及答案
转自:http://www.cnblogs.com/syfwhu/p/4434132.html 前言 本文是在GitHub上看到一个大牛总结的前端常见面试题,很多问题问的都很好,很经典.很有代表性.上 ...
随机推荐
- 关于@Mapper和@Repository的一点小理解
参考博客:https://blog.csdn.net/lalioCAT/article/details/51803461 如果在接口上@Mapper,然后再在 xml中的namespace指向mapp ...
- 116 Populating Next Right Pointers in Each Node 每个节点的右向指针
给定一个二叉树 struct TreeLinkNode { TreeLinkNode *left; TreeLinkNode *right; TreeLinkNod ...
- [已读]CSS禅意花园
蛮早的一本书,提到了一些小tip,比如负margin实现居中.FIR图像替换.
- MySQL的information_schema的介绍(转)
转自:http://www.cnblogs.com/hzhida/archive/2012/08/08/2628826.html, 大家在安装或使用MYSQL时,会发现除了自己安装的数据库以外,还有一 ...
- get和post请求及进程和线程及cookie和session的区别
get和post请求及进程和线程及cookie和session的区别 1.get和post请求的区别 get请求是指向服务器进行获取查询数据的请求,post请求指向服务器提交数据的请求. get请求如 ...
- HDU 6052 To my boyfriend(容斥+单调栈)
题意:对于一个n*m的方格,每个格子中都包含一种颜色,求出任意一个矩形包含不同颜色的期望. 思路: 啊啊啊啊啊,补了两天,总算A了这道题了,简直石乐志,前面的容斥还比较好写,后面的那个>13那个 ...
- 6.python
最早的'密码本' ascii 涵盖了英文字母大小写,特殊字符,数字.01010101ascii 只能表示256种可能,太少,创办了万国码 unicode 16表示一个字符不行,32位表示一个字符. A ...
- Use-After-Free
0x00 UAF利用原理 uaf漏洞产生的主要原因是释放了一个堆块后,并没有将该指针置为NULL,这样导致该指针处于悬空的状态(这个指针可以称为恶性迷途指针),同样被释放的内存如果被恶意构造数据,就有 ...
- PAT (Basic Level) Practise (中文)- 1024. 科学计数法 (20)
PAT (Basic Level) Practise (中文)- 1024. 科学计数法 (20) http://www.patest.cn/contests/pat-b-practise/1024 ...
- velocity生成静态页面代码
首先需要必备的jar包: web.xml <!-- load velocity property --> <servlet> <servlet-name>veloc ...