此代码应该从数组中删除所有虚假值。 我接近得到它还是应该废弃我正在做的事情?我倾向于接近后才放弃。
function bouncer(arr) {
var bouncer = arr.filter(function(bouncer)undefined, null, NaN, 0, "", false); return arr; }
bouncer([7, "ate", "", false, 9]);
答案 0 :(得分:0)
尝试按布尔过滤。这应该工作。你在我的意见中过度复杂化了这个问题。看看这个example。 Boolean
关键字在JS中实现,只是检查给定值是否是有效的参数。详细了解Boolean
关键字here。
您可以使用alert
或return
代替console.log
,也可以将值添加到网站上的字段this。
答案 1 :(得分:0)
这不是一个真正的答案,只是建议......
如果您正在学习编码,那么您应该编写代码,以便明确(清楚)发生了什么。例如,这里的一些代码有点迂腐,但希望可以理解:
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);
Tushar的解决方案是惯用的,优雅的,并且做同样的事情;但是刚开始的人可能不会马上理解:
console.log([7, "ate", "", false, 9].filter(e=>e))
只要给它几个月,你就会在一行中流利地思考:)