2023在 JavaScript 中执行字符串内的移位

 所属分类:web前端开发

 浏览:65次-  评论: 0次-  更新时间:2023-09-08
描述:更多教程资料进入php教程获得。 假设我们有一个包含小写英文字母的字符串 str 和一个数组 arr,其中 arr[i] = [direction, ...
更多教程资料进入php教程获得。

在 JavaScript 中执行字符串内的移位

假设我们有一个包含小写英文字母的字符串 str 和一个数组 arr,其中 arr[i] = [direction, amount] −

  • direction 可以是 0(左移)或 1(右移)。

  • amount 是字符串 s 要移动的量。

    < /li>
  • 左移 1 意味着删除 s 的第一个字符并将其附加到末尾。

  • 同样,右移 1 意味着删除 s 的第一个字符并将其附加到末尾。删除 s 的最后一个字符并将其添加到开头。

我们需要编写一个 JavaScript 函数,该函数接受字符串作为第一个参数和包含 shift 的数组data 作为第二个参数。

函数应该迭代数组并在字符串中执行必要的移位,最后返回新字符串。

例如 -

如果输入字符串和数组是 -

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

 标签:
积分说明:注册即送10金币,每日签到可获得更多金币,成为VIP会员可免金币下载! 充值积分充值会员更多说明»

讨论这个素材(0)回答他人问题或分享使用心得奖励金币

〒_〒 居然一个评论都没有……

表情  文明上网,理性发言!