想写一个自定义的_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('')