假設我們有一個包含小寫英文字母的字串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中文網其他相關文章!