从数组javascript中删除真值

从数组javascript中删除真值,javascript,arrays,Javascript,Arrays,我有以下javascript数组: var foo = [false,false,true,false,true]; 我想要的是删除“true”值并保持false,如下所示: [false,false,false] 我试过这个: console.log(foo.map(function(i){if(i==false)return i;})); 但我得到的是: [ false, false, undefined, false, undefined ] 有没有办法做到这一点 你想要的,不是

我有以下javascript数组:

var foo = [false,false,true,false,true];
我想要的是删除“true”值并保持false,如下所示:

[false,false,false]
我试过这个:

console.log(foo.map(function(i){if(i==false)return i;}));
但我得到的是:

[ false, false, undefined, false, undefined ]
有没有办法做到这一点

你想要的,不是

var foo = [false,false,true,false,true];
var filteredAry = foo.filter(function(e) { return e !== true })

console.log(filteredAry)
var foo=[false,false,true,false,true];

log(foo.filter(函数(i){returni!==true;}))使用
过滤器
属性

var foo = [false, false, true, false, true];
var newArray = foo.filter(function(item) {
  return item === false;
});
console.log(newArray)
这里有一个解决方案


尝试令人惊讶的努力找到一个复制目标(我肯定有一个),可能是因为它太基本了。我能找到的大多数问题都是关于对象数组之类的。这和链接的重复目标(这不是很容易找到)之间的唯一区别是过滤的条件。
var foo = [false,false,true,false,true, undefined, 0];
var isFalsy = R.filter(R.not);
isFalsy(foo);

//result: [false, false, false, undefined, 0]