问题:
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.
For example, given nums = [0, 1, 0, 3, 12], after calling your function, nums should be [1, 3, 12, 0, 0].
我实现的程序:
var moveZeroes = function(nums) {
nums.forEach(function(val, key, arr){
if( (key+1) < arr.length) {
if(val === 0) {
arr[key] = arr[key+1];
arr[key+1] = 0;
}
}
});
};
运行结果:
Your input
[0,1,0,3,12]
Your answer
[1,0,3,12,0]
Expected answer
[1,3,12,0,0]
为什么没有得到期望的结果?
如果arr[k+1]本来就是0呢,你这样做是不行的