首頁 > web前端 > js教程 > 主體

在 JavaScript 中執行字串內的移位

王林
發布: 2023-08-26 10:41:13
轉載
1425 人瀏覽過

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

假設我們有一個包含小寫英文字母的字串str 和一個陣列arr,其中arr[i] = [direction, amount] −

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

  • amount 是字串 s 要移動的量。

  • 左移 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
登入後複製

以上是在 JavaScript 中執行字串內的移位的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:tutorialspoint.com
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!