从数组javascript中删除真值
我有以下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 ] 有没有办法做到这一点 你想要的,不是
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]