Easy es6 JavaScript(JS) solution (without unshift, splice)
Scroll down if you want to have an explanation.\n\n\nvar rotate = function (nums, k) {\n  for (let i = nums.length - 1; i >= 0; i--) {\n    nums[i + k] = nums[i
Scroll down if you want to have an explanation.\n\n```\nvar rotate = function (nums, k) {\n  for (let i = nums.length - 1; i >= 0; i--) {\n    nums[i + k] = nums[i];\n  }\n\n  for (let j = k - 1; j >= 0; j--) {\n    nums[j] = nums.pop();\n  }\n\n  // Time comlexity = O(a + b)\n};\n```\n.\n.\n.\n.\n.\n.\nExplanation down below\n\n\n```\nvar rotate = function (nums, k) {\n  // i.e. nums = [1, 2, 3, 4, 5, 6, 7],  k = 3\n  for (let i = nums.length - 1; i >= 0; i--) {\n    nums[i + k] = nums[i];\n    // i = 6,  k = 3\n    // nums[i + k] = nums[i]\n    // nums[6 + 3] = nums[6]\n    // nums[9] = 7              nums = [1, 2, 3, 4, 5, 6, 7, , , 7]\n\n    // i = 5,  k = 3\n    // nums[i + k] = nums[i]\n    // nums[5 + 3] = nums[5]\n    // nums[8] = 6              nums = [1, 2, 3, 4, 5, 6, 7, , 6, 7]\n\n    // i = 4,  k = 3\n    // nums[i + k] = nums[i]\n    // nums[4 + 3] = nums[4]\n    // nums[7] = 5              nums = [1, 2, 3, 4, 5, 6, 7, 5, 6, 7]\n\n    // i = 3,  k = 3\n    // nums[i + k] = nums[i]\n    // nums[3 + 3] = nums[3]\n    // nums[6] = 4              nums = [1, 2, 3, 4, 5, 6, 4, 5, 6, 7]\n\n    // i = 2,  k = 3\n    // nums[i + k] = nums[i]\n    // nums[2 + 3] = nums[2]\n    // nums[5] = 3              nums = [1, 2, 3, 4, 5, 3, 4, 5, 6, 7]\n\n    // i = 1,  k = 3\n    // nums[i + k] = nums[i]\n    // nums[1 + 3] = nums[1]\n    // nums[4] = 2              nums = [1, 2, 3, 4, 2, 3, 4, 5, 6, 7]\n\n    // i = 0,  k = 3\n    // nums[i + k] = nums[i]\n    // nums[0 + 3] = nums[0]\n    // nums[3] = 1              nums = [1, 2, 3, 1, 2, 3, 4, 5, 6, 7]\n  }\n\n  for (let j = k - 1; j >= 0; j--) {\n    // nums = [1, 2, 3, 1, 2, 3, 4, 5, 6, 7]\n    nums[j] = nums.pop();\n\n    // j = 2\n    // nums[j] = nums.pop()\n    // nums[2] = 7               nums = [1, 2, 7, 1, 2, 3, 4, 5, 6]\n\n    // j = 1\n    // nums[j] = nums.pop()\n    // nums[1] = 6               nums = [1, 6, 7, 1, 2, 3, 4, 5]\n\n    // j = 0\n    // nums[j] = nums.pop()\n    // nums[0] = 5               nums = [5, 6, 7, 1, 2, 3, 4]\n  }\n\n  // nums = [5, 6, 7, 1, 2, 3, 4]\n\n  // Time comlexity = O(a + b)\n};\n```
['JavaScript']