【发布时间】:2019-04-21 21:11:49
【问题描述】:
我正在做一个非常简单的编码挑战。返回字符串的每第 n 个字母。而且,在这被标记为重复之前,我已经有了一些解决方案。而且,我知道通过编程可能有很多方法可以达到相同的结果。但我想知道以下解决方案在逻辑、可读性或一般语法方面是否有很大差异。哪个会被认为是有利的解决方案?在这个例子中,我每三个做一次。如果您有更好的解决方案,我想看看。
function testcode(str){
let newstr = '';
for (let i=2; i<str.length; i+=3) {
newstr += str[i]
}
return newstr;
}
testcode('hellostackoverflow');
function testcode(str){
let newstr='';
for (let i=0; i<str.length; i++) {
if ((i+1)%3 === 0){
newstr += str[i];
}
}
return newstr;
}
testcode('hellostackoverflow');
我也尝试了正则表达式的方式,但如果不完全是 3,它不会替换字符。
let str = "aaCaaCaaCaa";
let result = str.replace(/..(.)/g, "$1");
console.log(result);
//gives me CCCaa
【问题讨论】:
-
@CertainPerformance 它们的意思是每三个字母。
标签: javascript regex string function ecmascript-6