gpt4 book ai didi

JavaScript - 输入数组在没有push语句的情况下更改

转载 作者:行者123 更新时间:2023-11-28 11:44:38 28 4
gpt4 key购买 nike

我在 leet 代码#283

Given an array nums, write a function to move all 0's to the end of it while maintaining the relative order of the non-zero elements.

Input: [0,1,0,3,12]
Output: [1,3,12,0,0]

有人可以解释一下下面的代码吗?

var moveZeroes = function(nums) {     // nums is [0,1,0,3,12]
var len = nums.length;
for (let lastNonZero = 0, cur = 0; cur < len; cur++) {
if (nums[cur] !== 0) {
[nums[lastNonZero], nums[cur]] = [nums[cur], nums[lastNonZero]]; // what exactly happened here
lastNonZero++;
}
}
return nums;
};

for 循环 是如何工作的以及 nums 数组 是如何重新排列的?

最佳答案

行:[nums[lastNonZero], nums[cur]] = [nums[cur], nums[lastNonZero]] 只是替换。如果您有 [1, 2] 并使用此代码,您最终会得到 [2, 1]。您提供的函数将运行循环并将 0 向右移动,将下一个数字向左移动,直到到达 [0, 0]。

关于JavaScript - 输入数组在没有push语句的情况下更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54833699/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com