在JavaScript中左右移动字符串

我们需要编写一个包含三个参数的JavaScript函数,首先是一个字符串,例如str,然后有两个数字,例如m和n。数字m和n基本上分别指定了leftShifts和rightShifts的数量。

我们将这些术语定义如下:

左移-字符串的单圈旋转,其中第一个字符变为最后一个字符,所有其他字符向左移一个索引。

例如,abcde左移后变为bcdea,两次左移后变为cdeab。

右移-字符串的单个循环旋转,其中最后一个字符变为第一个字符,而所有其他字符向右移位。

例如,abcde右移后变为eabcd,两次右移后变为deabc。

因此,基本上我们的函数应该执行指定数量的左移和右移,然后最终返回结果字符串。

示例

为此的代码将是-

const str = 'abcdef';
const getShiftedString = (str, leftShifts, rightShifts) =>
shiftByAmount(shiftByAmount(str, leftShifts), −rightShifts);
//辅助功能
//负数向右移动
//正数向左移动
const shiftByAmount = (str, leftShifts) => {
   leftShifts = leftShifts % str.length;
   return str.slice(leftShifts) + str.slice(0, leftShifts);
};
console.log(getShiftedString(str, 3, 2));

输出结果

控制台中的输出将是-

Bcdefa