如何从字符串中获取某个第n个元素。就像我想从GOOGLE这个词中获取每个第3个元素我怎么能这样做。到目前为止,我已经完成了这个,但我不知道在If
之后要输入什么 function create_string( string ) {
var string_length=string.length;
var new_string=[];
for( var i=0; i<string_length; i++) {
if(string[i]%3==0) {
}
new_string.push(string[i]);
}
return new_string;
}
答案 0 :(得分:3)
使用charAt()
String
函数返回传递给函数的特定索引处的char。使用charAt
,我创建了一个将返回每三个字符的脚本。
var result = "";
for(var i = 2; i < test.length; i+=3){
result += test.charAt(i);
}
如果您想将此脚本转换为更可重用的功能:
var test = "GOOGLE";
function getEveryNthChar(n, str){
var result = "";
for(var i = (n-1); i < test.length; i+=n){
result += str.charAt(i);
}
return result;
}
alert(getEveryNthChar(1,test));
alert(getEveryNthChar(2,test));
alert(getEveryNthChar(3,test));
alert(getEveryNthChar(4,test));
答案 1 :(得分:1)
这个怎么样?
function create_string( string ) {
var string_length=string.length;
var new_string=[];
for( var i=2; i<string_length; i+=3) { // instead of an if, use +=3
new_string.push(string.charAt(i));
}
return new_string.join(""); // turn your array back into a string
}
请注意,如果你开始制作这个契约,你最终会得到与凯文相同的答案; - )
function create_string( s ) {
var new_string = '';
for( var i=2; i<s.length; i+=3) { // instead of an if, use +=3
new_string += s.charAt(i);
}
return new_string;
}
答案 2 :(得分:0)
这是一个适用于任何数字的功能,而不仅仅是3:
function stringHop(s, n) {
var result = "";
for (var i = 0; i < s.length; i+= n) {
result += s.charAt(i);
}
return result;
}
var foo = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
var bar = stringHop(foo, 2); // returns "ACEGIKMOQSUWY"
var baz = stringHop(foo, 3); // returns "ADGJMPSVY"
答案 3 :(得分:0)
String.charAt(index)
将返回指定索引处的字符,从0到String.length - 1
。所以:
String.prototype.every = function(n) {
var out = '';
for (var i = 0; i < this.length; i += n) {
out += this.charAt(i);
}
return out;
}
var str = "GOOGLE";
console.log(str.every(3)) // Outputs: GG
如果您不想包含第一个字符,请将for
循环更改为:
for (var i = n - 1; i < this.length; i += n) {