我有点好奇为什么下面发布的两个解决方案之间的行为不同。在Failing解决方案中,我已将 zeros 数组连接到我在执行时假设的值,即过滤操作的结果数组。我很好奇为什么结果不是更新的连接变体(末尾为 0 的数组),而只是过滤操作的初始输出。
通过:
const moveZeros = function (arr) {
let zeros = [];
for (let i = 0; i < arr.length; i++) {
if (arr[i] === 0) zeros.push(0);
}
let filteredArray = arr.filter( element => element !== 0).concat(zeros)
return filteredArray;
//returns [1,2,3,0,0,0]
}
失败:
const moveZeros = function (arr) {
let zeros = [];
for (let i = 0; i < arr.length; i++) {
if (arr[i] === 0) zeros.push(0);
}
let filteredArray = arr.filter( element => element !== 0);
// shouldnt the line below concat zeros to the filter result?
filteredArray.concat(zeros);
return filteredArray;
//returns [1,2,3]
}
这也通过: return filteredArray.concat(zeros)
BIG阳
月关宝盒
阿晨1998
相关分类