我是 ES6 的新手,试图制作一个函数,将数组中的所有零移动到数组的最后一个位置,同时保留数组的原始顺序
例如。 [1,0,0,0,2,3,4,5]
=> [1,2,3,4,5,0,0,0]
function moveZeros (arr) {
let zeroArr = [];
for(let i = 0;i < arr.length;i++) {
if (arr[i] == 0) {
zeroArr.push(arr[i]);
arr.splice(i, 1);
}
}
arr.push(...zeroArr);
return arr;
}
这是我的代码,它运行良好,但我认为在使用一些 ES6 功能时可以更短。有人可以提供更好的解决方案
最佳答案
使用 filter
函数和 spread
运算符可以很容易地解决这个问题,.
const moveZeros = arr => {
const z = arr.filter(a => a === 0); // get all zeroes
const nZ = arr.filter(a => a !== 0); // get all non zeroes
return [...nZ, ...z]; // put the zeroes on the last position
};
关于javascript - 使用 ES6 功能移动数组中的零,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53631233/