我们需要编写一个包含三个参数的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