【发布时间】:2015-08-14 21:08:58
【问题描述】:
我的目标是确定一个数组是否包含任何虚假元素并创建一个没有这些元素的新数组。我想出了一个非常丑陋的函数,但我就是想不出更好的方法来编写它。
function bouncer(arr) {
var newArray = [];
for (var i = 0; i < arr.length; i++)
if (arr[i] !== false ) {
if (arr[i] !== NaN) {
if (arr[i] !== "") {
if (arr[i] !== 0) {
if (arr[i] !== undefined) {
if (arr[i] !== null) {
newArray.push(arr[i]);
}}}}}}
return newArray;
}
bouncer([7, 'ate', '', false, 9]);
我尝试使用 if 语句使用多个条件,例如
if (arr[i] !== false || arr[i] !== "")
但是当我这样做时,由于某种原因它不会同时捕获这两种情况。有什么更简单的方法来做到这一点?
【问题讨论】:
-
你需要
if (arr[i] !== false && arr[i] !== "")NOT || -
提示:
||表示 OR&&表示 AND. -
我不认为这段代码有什么问题吗?我也经常有很多 if 语句。
-
我不认为你理解一个值是“假”的意思是一个假值评估为
false。关键是要避免做你刚刚做的事情。查看@Nina Scholz 的回答