打乱数组12345678910111213141516171819202122232425262728293031323334353637/** * @param {number[]} nums */var Solution = function (nums) { this.nums = nums; this.bankNums = [...this.nums];};/** * @return {number[]} */Solution.prototype.reset = function () { this.nums = [...this.bankNums]; return this.nums;};/** * @return {number[]} */Solution.prototype.shuffle = function () { // 洗牌算法 const nums = [...this.nums]; for (let i = 0; i < nums.length; i++) { const j = Math.floor(Math.random() * nums.length); const temp = nums[i]; nums[i] = nums[j]; nums[j] = temp; } return nums;};/** * Your Solution object will be instantiated and called as such: * var obj = new Solution(nums) * var param_1 = obj.reset() * var param_2 = obj.shuffle() */ 注意Math.random()返回的是[0,1)左闭右开,所以j=Math.floor(Math.random() * (nums.length - 1))他的取值范围是[0, nums.length-2]最后一个元素不会打乱,所以不公平