想寫一個自定義的_reverse函數,其作用是將傳入的數組進行部分反序.
效果如下:
輸入[1,2,3,4,5,6,7,8,9]
第一個將2~4個位置的數字反序
第二個將2~6個位置的數字反序.
// js
function _reverse(arr, s, e) {arr = arr.join('').slice(0,s) + arr.join('').slice(s,e).split('').reverse().join('') + arr.join('').slice(e)return arr.split('')
}// 參數說明
// arr是原數組
// s是起始的位置, e是結束位置.
// 例如_reverse(arr, 1, 3) 索引 1<=x <3 的位置的順序.即,第2個元素(索引為1)和第三個元素(索引為2)
再定義一個對數組任意連續位置的排序算法:
function _sort(arr, s, e) {arr =arr.join('').slice(0, s) + arr.join('').slice(s, e).split('').sort((a,b) => a-b).join('') + arr.join('').slice(e);return arr
}
let arr = [1,3,2,4,5,6,7];
_sort(arr, 1, 3);// 說明:
// 1.由于arr是數組.要取出數組中某一部分的元素. 可以先把數組轉換成字符串.然后利用字符串的.slice操作
// 2.數組轉換稱字符串的方法是 arr.join('')
// 3.由于sort函數是對數組的操作,因此需要將字符串轉換成數組.
// 4.字符串轉換成數組的方法是 str.split('')