2017-01-15 17 views

答えて

2

私は、これはきれいかもしれないと思う:

['first', 'last'].forEach(function(tag) { x = x.replace('%s', tag); }) 

xはあなたに代わりに使用する文字列です。

+0

。 –

+0

OPは回答か教育を探していましたか? – rasmeister

+0

これはどうすれば簡単にできますか? – sweaver2112

0

String#replaceを使用し、%sの代わりにコールバックとしてArray#shiftを使用できます。

このソリューションでは、置換の項目が見つかった場合は、コールごとに配列からの値を提供するため、shiftが使用されます。通常、文字列または関数は、replaceの2番目のパラメータとして必要です。この提案では、置換のためにバインドされた配列を持つshiftが使用されています。

Function#bindは、バインドされたオブジェクトで関数を返します。

bind()方法が呼び出されると、新しい関数が呼び出されたときに提供されるそのこのキーワードは、任意の前の引数の指定された配列と、与えられた値に設定されている、新たな機能を作成します。私は丁重に反対するOPのような初心者のために

var s = "What is your %s name and %s name?", 
 
    t = s.replace(/%s/g, [].shift.bind(['first', 'last'])); 
 

 
console.log(t);

+0

@dv、コメントしますか? –

+0

それは私ではありませんでしたが、あなたの答えはこの方法が何であるかについての説明を使用することができます。どのように 'func.bind()'が動作するのかについてはhttps://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/bind –

+0

@JohnHascall、これは今すぐ説明した。 –

関連する問題