在James Padolsey的博客里看到一篇面试题。
- Replace the string
"The quick brown fox jumps over the lazy dog"
with the string"The1 quick2 brown3 fox4 jumps5 over6 the7 lazy8 dog9"
.
自己写了几种方案:
var foo = "The quick brown fox jumps over the lazy dog";
var bar = "The1 quick2 brown3 fox4 jumps5 over6 the7 lazy8 dog9";
function test(func){
var result = func(foo);
console.log(result === bar ? true : result);
}
function custom1(str){
var i = 0;
return str.replace(/\w+/g, function(c){
return c + ++i;
})
}
function custom2(str){
str = str.split(' ');
for (var i = str.length; i--;){
str[i] += i+1;
}
return str.join(' ');
}
function custom3(str){
var i = 0;
return str.replace(/(?=[\s]|$)/g, function(){
return ++i;
})
}
test(custom1);
test(custom2);
test(custom3);
但是没想到用Array的map方法,虽然这是javascript高版本才增加的。
"The quick brown fox jumps over the lazy dog".split(' ').map(function(w,i){ return w + (i + 1) }).join(' ')