我解决了关于代码大战的难题。他们要求将所有内容移动0
到数组的末尾,保留所有其他元素的顺序。假设我们有一个数组:
[1,2,0,1,0,1,0,3,0,1]
需要得到一个数组
[ 1, 2, 1, 1, 3, 1, 0, 0, 0, 0 ]
我写了一个这样返回的函数
[ 1, 2, 1, 1, 3, 1, 0, 0, 0]
因此未能通过测试。这是代码:
let moveZeros = function (arr) {
// TODO: Program me
let oldLength = arr.length;
arr = arr.filter(element => element !== 0)
for (let i = 0; i <= oldLength - arr.length; i++) arr.push(0);
return arr;
}
问题:一个去哪儿了0
?
在每次迭代之前计算。