2011-10-25 12 views
1

私は、テキストの配列を持っている:は、配列内の文字列を追加 - Javascriptを

var text=new Array("a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s"); 

私は、設定された数に応じて、配列内の要素を追加して、新しい配列にこれらを保存したいと思います。例えば、私が3を選択すると、新しい配列(結果)の結果の文字列は "abc"、 "def"、 "ghi"などになります。

私は結合を見ました。作業 - それはアレイ全体を一緒に追加することしかできないようです。ネストされたループを使用する必要があると思いますが、これを動作させることはできません。私の試みは次のとおりです。

//Outer loop 
for (i=0; i < text.length; i++) { 
    //Inner loop 
    for (j=i; j < i+$numberWords; j++) { 
    newWord=text[j]; 
    newPhrase=newPhrase+" "+newWord; 
    }  
terms.push(newPhrase); 
i=i+$numberWords; 
} 

ありがとうございます。

答えて

4

あなたはそうのような様々なarray functionsを使用することができます。上記の例の

var input = new Array("a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s"); 
var output = new Array(); 
var length = 3; 
for (var i = 0; i < input.length; i += length) { 
    output.push(input.slice(i, i + length).join(" ")); 
} 
alert(output); 

バリアント:ここ

var input = new Array("a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s"); 
var output = new Array(); 
var length = 2; 
while (input.length) { 
    output.push(input.splice(0, length).join(" ")) 
} 
alert(output); 
+0

感謝をあなたの非常に迅速な応答を - これは素晴らしい作品です! – tomp

1

は、あなたが行く:

var text=new Array("a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s"); 

var n = 3; 
var a = new Array(); 
for (var i = 0; i < Math.ceil(text.length/3); i++) 
{ 
    var s = ''; 
    for (var j = 0; (j < n) && ((i*n)+j < text.length) ; j++) 
    { 
    s += text[n*i+j] + ' '; 
    } 
    a.push(s.trim()); 
} 
+0

19番目の要素を取得するために '.floor() 'の代わりに' .ceil() 'を使うことができます。 –

+0

ああ、私はそれをテストしていて、それをコピーするのを忘れたときにfloor()+ 1を持っていました。しかしスプライスでそれは方法クーラーです;) – PiTheNumber

+0

あなたの返信にも感謝 – tomp

関連する問題