这段代码应该从数组中删除所有的falsy值。 我正在接近它还是应该放弃我正在做的事情?我倾向于接近而后放弃。Falsy Freecodecamp算法挑战
function bouncer(arr) {
var bouncer = arr.filter(function(bouncer)undefined, null, NaN, 0, "", false); return arr; }
bouncer([7, "ate", "", false, 9]);
这段代码应该从数组中删除所有的falsy值。 我正在接近它还是应该放弃我正在做的事情?我倾向于接近而后放弃。Falsy Freecodecamp算法挑战
function bouncer(arr) {
var bouncer = arr.filter(function(bouncer)undefined, null, NaN, 0, "", false); return arr; }
bouncer([7, "ate", "", false, 9]);
尝试按布尔值进行过滤。这应该工作。你在我的意见中过分复杂。看看这个example。 Boolean
关键字在JS中实现,只是检查给定的值是否是有效的参数。详细了解Boolean
关键字here。
而不是alert
您也可以使用return
或console.log
或将值赋予网站上的字段,如this。
我从来没有注意到最初的挑战表明我使用布尔值。谢谢您的帮助。 –
耶没问题。很高兴帮助有人采取与我一样的道路。与这些挑战祝你好运。 – hansTheFranz
@OriginalName,请标记他/她的答案,如果您认为这对您的案例有帮助:https://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work/5235#5235 – eeya
这是不是一个真正的答案,只是建议...
如果你正在学习的代码,你应该写你的代码,这样很明显和清晰的(给你)发生了什么。例如,这里的一些代码,有点迂腐,但希望可以理解的:
function copy_truthies(in_values) {
let out_values = [];
in_values.forEach(value => {
if (value) {
out_values.push(value);
}
});
return out_values;
}
let all_values = [7, "ate", "", false, 9];
let truthy_values = copy_truthies(all_values);
console.log(truthy_values);
图莎尔的解决方案是地道的,优雅的,和做同样的事情;但它可能不会被某人马上明白刚刚开始:
console.log([7, "ate", "", false, 9].filter(e=>e))
只要给它几个月,你会流利的单行:)
想着只要使用'arr.filter(E => e)'。 – Tushar
当你尝试时发生了什么? –
SyntaxError:意外的标识符。 –