[b]1. 判断两个字符串是否:字母相同切长度相同(空格不算)。[/b]
即它们是: anagrams
例如:
1. "listen" 与 "silent"
2. "this is a Tomcat" 与 "Tom has a tisict"
或者是:
更严谨一些:
[b]注:[/b]
多记住一些 Array 和 String 的原生方法,
可以快速简洁的写出面试题。
[b]2. 写一个add函数,可以这样调用: add(1)(2), add(1,2)[/b]
[b]3. 写出一个字符串中某字符串出现的次数[/b]
提示: String.split()
function times(){
}
[b]4. 打印 json object 的所有节点和子节点[/b]
提示: for(property in node )
function printNodes(){
}
[b]5. 统计一个字符串中,某个字符串出现的 index [/b]
方法一:
使用:
[url=https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/indexOf]String.prototype.indexOf(searchValue)[/url]
[url=https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/substr]String.prototype.substr(start) [/url]
方法二:
使用:
[url=https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/indexOf]String.prototype.indexOf(searchValue[, fromIndex])[/url]
[b]对比:[/b]不够简洁的代码(注意 if 和 while 的用法)
方法三:[url=https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions]使用 Regular Expression[/url]
正则表达式在 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;
}
[b]注:[/b]
多记住一些 Array 和 String 的原生方法,
可以快速简洁的写出面试题。
[b]2. 写一个add函数,可以这样调用: add(1)(2), add(1,2)[/b]
[b]3. 写出一个字符串中某字符串出现的次数[/b]
提示: String.split()
function times(){
}
[b]4. 打印 json object 的所有节点和子节点[/b]
提示: for(property in node )
function printNodes(){
}
[b]5. 统计一个字符串中,某个字符串出现的 index [/b]
方法一:
使用:
[url=https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/indexOf]String.prototype.indexOf(searchValue)[/url]
[url=https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/substr]String.prototype.substr(start) [/url]
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;
}
方法二:
使用:
[url=https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/indexOf]String.prototype.indexOf(searchValue[, fromIndex])[/url]
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;
}
[b]对比:[/b]不够简洁的代码(注意 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;
}
方法三:[url=https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions]使用 Regular Expression[/url]
正则表达式在 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
-