从字符串中获取第n个元素

时间:2012-12-13 10:39:32

标签: javascript string indexing

如何从字符串中获取某个第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;
    }

4 个答案:

答案 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));

工作演示:http://jsfiddle.net/Q7Lx2/

Documentation

答案 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) {