javascript之编程序题目
程序员文章站
2022-07-05 23:47:30
...
1. 判断两个字符串是否:字母相同切长度相同(空格不算)。
即它们是: anagrams
例如:
1. "listen" 与 "silent"
2. "this is a Tomcat" 与 "Tom has a tisict"
或者是:
更严谨一些:
注:
多记住一些 Array 和 String 的原生方法,
可以快速简洁的写出面试题。
2. 写一个add函数,可以这样调用: add(1)(2), add(1,2)
3. 写出一个字符串中某字符串出现的次数
提示: String.split()
function times(){
}
4. 打印 json object 的所有节点和子节点
提示: for(property in node )
function printNodes(){
}
5. 统计一个字符串中,某个字符串出现的 index
方法一:
使用:
String.prototype.indexOf(searchValue)
String.prototype.substr(start)
方法二:
使用:
String.prototype.indexOf(searchValue[, fromIndex])
对比:不够简洁的代码(注意 if 和 while 的用法)
方法三:使用 Regular Expression
正则表达式在 JavaScript 中也是对象的一种。它可以用在:
1) RegExp 对象的 test(), exec() 方法中
2) String 对象的 match(), replace(), search(), split() 方法中
-
转载请注明:
原文出处: http://lixh1986.iteye.com/blog/2335628
-
即它们是: anagrams
例如:
1. "listen" 与 "silent"
2. "this is a Tomcat" 与 "Tom has a tisict"
function isAnagrams(a, b){ a = a.replace(/ /g, '').split('').sort(); b = b.replace(/ /g, '').split('').sort(); if(a.length != b.length)return false; var i = 0; for(;i<a.length;i++){ if(a[i] != b[i]) return false; } return true; } var a = 'this is a Tomcat'; var b = 'Tom has a tisict'; isAnagrams(a,b);
或者是:
function isAnagrams(a, b){ a = a.replace(/ /g, '').split('').sort().join(''); b = b.replace(/ /g, '').split('').sort().join(''); return a == b; }
更严谨一些:
function isAnagrams(a, b){ function valid(obj){ return toString.call(obj) === "[object String]"; } function convert(str){ return str.replace(/ /g, '').split('').sort().join(''); } if(valid(a) && valid(b)){ return convert(a) == convert(b); } return false; }
注:
多记住一些 Array 和 String 的原生方法,
可以快速简洁的写出面试题。
2. 写一个add函数,可以这样调用: add(1)(2), add(1,2)
3. 写出一个字符串中某字符串出现的次数
提示: String.split()
function times(){
}
4. 打印 json object 的所有节点和子节点
提示: for(property in node )
function printNodes(){
}
5. 统计一个字符串中,某个字符串出现的 index
方法一:
使用:
String.prototype.indexOf(searchValue)
String.prototype.substr(start)
function getIndexList1(str, pattern){ var arrlist = []; var index = str.indexOf(pattern); var last = 0; while(index != -1 && str.length > 0){ arrlist.push(last + index); var subIndex = index + pattern.length; last += subIndex; str = str.substr(subIndex); index = str.indexOf(pattern); } return arrlist; }
方法二:
使用:
String.prototype.indexOf(searchValue[, fromIndex])
function getIndexList2(str, pattern){ var arrlist = []; var index = str.indexOf(pattern); while(index > 0){ arrlist.push(index); index = str.indexOf(pattern, arrlist[arrlist.length-1] + pattern.length); } return arrlist; }
对比:不够简洁的代码(注意 if 和 while 的用法)
function getIndexList(str, pattern){ var arrlist = []; var index = str.indexOf(pattern,arrlist[arrlist.length-1]); if(index > 0) { arrlist.push(index); while(index > 0){ index = str.indexOf(pattern,arrlist[arrlist.length-1]+ pattern.length); if(index > 0)arrlist.push(index); } } return arrlist; }
方法三:使用 Regular Expression
正则表达式在 JavaScript 中也是对象的一种。它可以用在:
1) RegExp 对象的 test(), exec() 方法中
2) String 对象的 match(), replace(), search(), split() 方法中
function getIndexList(str, pattern){ var arrlist = []; var myRe = new RegExp(pattern,'g'); var result; while ((result = myRe.exec(str)) !== null) { arrlist.push(result.index); } return arrlist; }
-
转载请注明:
原文出处: http://lixh1986.iteye.com/blog/2335628
-
上一篇: 正则表达式,常用正则
推荐阅读
-
重学js之JavaScript 面向对象的程序设计(创建对象)
-
JavaScript程序设计高级算法之动态规划实例分析
-
javascript之编程序题目
-
使用JavaScript实现一个小程序之99乘法表
-
JavaScript高级程序设计之基本引用类型
-
微信小程序开发之九 —— JavaScript入门
-
JavaScript面向对象的程序设计之继承
-
【夔堂】程序血泪史之——有一种垃圾语言叫做JavaScript
-
JavaScript高级程序设计 读书笔记之十 本地对象Date日期_javascript技巧
-
JavaScript高级程序设计 读书笔记之十一 内置对象Global_javascript技巧