Javascript
 Computer >> コンピューター >  >> プログラミング >> Javascript

シフト文字列JavaScriptで左右に循環


3つの引数を受け取るJavaScript関数を作成する必要があります。最初は文字列、たとえばstrで、次に2つの数値(たとえばmとn)があります。数値mとnは、基本的にそれぞれleftShiftsとrightShiftsの量を指定します。

これらの用語をそのように定義します-

左シフト −最初の文字が最後の文字になり、他のすべての文字が1インデックス左にシフトされる、文字列の1回の循環回転。

たとえば、abcdeは1回の左シフト後にbcdeaになり、2回の左シフト後にcdeabになります。

右シフト −最後の文字が最初の文字になり、他のすべての文字が右にシフトされる、文字列の1回転。

たとえば、abcdeは1回右シフトするとeabcdになり、2回右シフトするとdeabcになります。

したがって、基本的に、関数は指定された数の左右シフトを実行し、最後に結果の文字列を返す必要があります。

このためのコードは-

になります
const str = 'abcdef';
const getShiftedString = (str, leftShifts, rightShifts) =>
shiftByAmount(shiftByAmount(str, leftShifts), −rightShifts);
// helper function
// negative amount shifts to right
// positive amount shifts to left
const shiftByAmount = (str, leftShifts) => {
   leftShifts = leftShifts % str.length;
   return str.slice(leftShifts) + str.slice(0, leftShifts);
};
console.log(getShiftedString(str, 3, 2));

出力

そして、コンソールの出力は-

になります
Bcdefa

  1. JavaScriptで正規表現をテストして実行する方法は?

    以下は、JavaScriptで正規表現をテストおよび実行するためのコードです- 例 <!DOCTYPE html> <html lang="en" > <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>Document</title> <style>

  2. C#の左シフトおよび右シフト演算子(>>および<<)とは何ですか?

    ビット単位の左シフト演算子 左のオペランドの値は、右のオペランドで指定されたビット数だけ左に移動します。 ビット単位の右シフト演算子 左のオペランドの値は、右のオペランドで指定されたビット数だけ右に移動します。 以下は、ビット単位の左シフト演算子と右シフト演算子の操作方法を示す例です- 例 using System; namespace Demo {    class Program {       static void Main(string[] args) {         &nbs