我正在freeCodeCamp学习,目前正在学习基本算法。我正在做Falsy Bouncer练习,需要从数组中删除所有Falsy值。遗憾的是,这个任务只有高级答案,使用了filter()方法。我决定制作一个基本版本,但目前卡住了。
function bouncer(arr) {
//*loops through array*
for (let i = 0; i < arr.length; i++) {
// *if there is a value that is falsy, delete that value from the array*
if (arr[i] == 0 || arr[i] == NaN || arr[i] == null || arr[i] == false || arr[i] == "" || arr[i] == undefined) {
delete arr[i];
}
}
return arr;
}
console.log(bouncer([7, "ate", "", false, 9]));
返回结果为:
7,ate,,,9.
这个函数确实去掉了假值,但是我还剩下那三个点(,,,). 有没有办法让这个函数更正确地工作,并返回没有这些点的真值,同时不失去函数的简单性? 感谢您的帮助。
arr[i] == NaN
永远不会为true
。 - Sebastian Simon