2016-05-04 26 views
0

文字セットを見ると、各文字を配列内の特定の順序に配置しようとしています。例:文字列 "cat"と "dog"が与えられた場合、最初に読み込まれたので、配列の最後に[d,o,g,c,a,t]、catが入った配列が必要です。 単語を構成する配列の先頭に文字を追加する

は現在、私はこれを試してみました:

をしかし、私は、文字列を想定して以下のコードをしようとすると、「猫」と「犬」です。 私は配列を含む:[c,a,t,d,o,g]。私はプッシュの代わりに.unshiftを試しましたが、配列は現在[g,o,d,t,a,c]です。

var chars = /^[a-z]$/; 
    var string = []; 
    function makeword(){ 
    if(currentChar.match(chars)){ 
    string.push(currentChar); 
    currentChar = getNextChar(); //Gets next Character in the String 
    makeword(); 
    } 
    } 

Javascriptではこれが可能ですか?

+0

? – shreyansh

+0

あなたの入力例は何ですか?どのようにそれを与えるのだろうか? isはあなたが渡す文字列で、配列に分割されていますか?または、単純な配列を渡すだけですか?適切な詳細を教えてください。 –

答えて

0

あなたが正しく理解していれば、文字列のリストを提供し、それらを逆の順序で配列に表示し、各文字を配列の要素として表示したいとします。次の関数は、まさにそれを行います。

function makeWords() { 
    var arr = []; 

    for(var i = arguments.length - 1; i >=0; i--) { 
    arr.push(arguments[i]); 
    } 

    return arr.join('').split(''); 
} 

のでmakeWords('cat', 'dog')['d','o','g','c','a','t']になります実行されています。

+0

'' Array'配列に['Array.reverse'](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Array/reverse)を使用してください... – Quill

+0

これはですまことにありがとうございます! – user2723295

+0

@Quill、ちょうど参考、引数の漏れを避けるために実用的です(https://github.com/petkaantonov/bluebird/wiki/Optimization-killers#32-leaking-arguments) "配列"。 –

0

機能的なアプローチを使用すると、比較的単純なコードになります。残りの演算子とスプレッド演算子は、関数の引数を集め、単語の文字を配列に広げるために非常に便利です。あなたがcurrentCharを定義している

var characterify = (...c) => c.reduceRight((a,b) => a.concat([...b]) ,[]); 
 

 
document.write("<pre>" + JSON.stringify(characterify("cat","dog")) + "</pre>");

関連する問題