Falsy Freecodecamp算法挑战

时间:2017-07-08 14:24:53

标签: javascript

此代码应该从数组中删除所有虚假值。 我接近得到它还是应该废弃我正在做的事情?我倾向于接近后才放弃。

function bouncer(arr) {

var bouncer = arr.filter(function(bouncer)undefined, null, NaN, 0, "", false); return arr; } 

bouncer([7, "ate", "", false, 9]);

2 个答案:

答案 0 :(得分:0)

尝试按布尔过滤。这应该工作。你在我的意见中过度复杂化了这个问题。看看这个exampleBoolean关键字在JS中实现,只是检查给定值是否是有效的参数。详细了解Boolean关键字here

您可以使用alertreturn代替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))

只要给它几个月,你就会在一行中流利地思考:)