私は文字列内の特定の間隔で改行文字を挿入するよう求めています。期待リターンの例:新しい行の文字を正しい間隔で文字列に挿入するにはどうすればよいですか?
insertNewLine('Happiness takes wisdom and courage', 20) => 'Happiness takes\nwisdom and courage'
insertNewLine('Happiness takes wisdom and courage', 30) => 'Happiness takes wisdom and\ncourage'
これまでのところ、私は簡単なアルゴリズムはこのことだろう実装することを考えてきた:
- は、所望の幅に渡され、同じチャンクに文字列を分割
- 各チャンク内のスペースの最後のインデックスを見つけて\ nに置き換えてください。
これは私が得ているリターンであるため、明らかにアルゴリズムに欠陥があります。 verの文字列チャンクの配列を返し、常に各チャンクに改行文字を追加します。これは正しい出力です:
insertNewLine('Happiness takes wisdom and courage', 20) => 'Happiness takes\nwisdom and\ncourage'
期待される結果を得るにはどのようなアルゴリズムが良いでしょうか? [:私は特定のインデックスに文字列を挿入するにはどうすればよいのJavaScript](HTTPS:/
const _ = require('underscore')
const insertNewLine = (text, width) => {
if (width < 15) return 'INVALID INPUT';
if (text.length <= width) return text;
else {
const arrayOfText = text.split('');
const temparray = [];
for (let i = 0; i < arrayOfText.length; i += width) {
temparray.push(arrayOfText.slice(i, i + width));
}
return temparray.map((elem, i, arr) => {
elem[_.lastIndexOf(elem, ' ')] = '\n';
return elem.join('');
}).join('');
}
};
が重複する可能性を試してみてください:ここで
はあまりにもコードです/stackoverflow.com/questions/4313841/javascript-how-can-i-insert-a-string-at-a-specific-index) –