rotate函数中将原始数组翻转,然后使用slice切割成两部分各自翻转,let numsOne = nums.slice(0, k);之后debugger发现numsOne是undefined,原因是什么呢?
<script>
window.onload = function () {
var rotate = function () {
let nums = [1, 2, 3, 4, 5, 6, 7];
let k = 3;
let n = nums.length;
reverseArray(nums);
k %= n;
let numsOne = nums.slice(0, k);//这里debugger显示numsOne为undefined
let numsTwo = nums.slice(k, nums.length);
numsOne = reverseArray(numsOne);
numsTwo = reverseArray(numsTwo);
console.log(numsOne);
debugger;
let result = numsOne.push(numsTwo);
return result;
console.log(result)
};
// 下面是我DIY的翻转数组的方法
function reverseArray(nums) {
let left = 0;
let right = nums.length - 1;
while (left < right) {
let temp = nums[left];
nums[left] = nums[right];
nums[right] = temp;
left++;
right--;
}
}
rotate();
}
</script>