ホームページ > 記事 > ウェブフロントエンド > JavaScript で文字列内でシフトを実行する
小文字の英字を含む文字列 str と配列 arr があるとします。ここで、arr[i] = [方向、量] −
direction は 0 (左にシフト) または 1 (右にシフト) です。
amount は、文字列 s が移動される量です。
1 だけ左にシフトするということは、 s の最初の文字を削除して最後に追加することを意味します。
同様に、右に 1 シフトすると、s の最初の文字が削除され、最後に追加されます。 s の最後の文字を削除し、先頭に追加します。
最初のパラメータとして文字列を受け取り、2 番目のパラメータとしてシフトを含む配列データを受け取る JavaScript 関数を作成する必要があります。
関数は配列を反復処理し、文字列内で必要なシフトを実行し、最終的に新しい文字列を返す必要があります。
#たとえば、-入力文字列と配列が -const str = 'abc'; const arr = [[0, 1], [1, 2]];の場合、出力は -
const output = 'cab';になるはずです。 #[ 0,1] は左に 1 移動することを意味します。 "abc" -> "bca"[1,2] は 2 を右に移動することを意味します。"bca" -> "cab"例コードは次のとおりです。 - ライブ デモ
const str = 'abc'; const arr = [[0, 1], [1, 2]]; const performShifts = (str = '', arr = []) => { if(str.length < 2){ return str; }; let right = 0 let left = 0; for(let sub of arr){ if(sub[0] == 0){ left += sub[1]; }else{ right += sub[1]; }; }; if(right === left){ return str; } if(right > left){ right = right - left; right = right % str.length; return str.substring(str.length - right) + str.substring(0, str.length - right); }else{ left = left - right; left = left % str.length; return str.substring(left) + str.substring(0,left); }; }; console.log(performShifts(str, arr));出力コンソールの出力は -
cab
以上がJavaScript で文字列内でシフトを実行するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。