ホームページ  >  記事  >  ウェブフロントエンド  >  JavaScript で文字列内でシフトを実行する

JavaScript で文字列内でシフトを実行する

王林
王林転載
2023-08-26 10:41:131398ブラウズ

在 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 サイトの他の関連記事を参照してください。

声明:
この記事はtutorialspoint.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。