狄烁STEC的试验场

hello earth

导航

一道面试题

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(' ')

posted on 2011-06-15 18:12  狄烁STEC  阅读(210)  评论(0编辑  收藏  举报