2016-10-20 25 views
1

我有以下的javascript数组:从阵列中取出真值的JavaScript

var foo = [false,false,true,false,true]; 

我想是去除“真”的价值观和保持假像这样:

[false,false,false] 

我已经试过这:

console.log(foo.map(function(i){if(i==false)return i;})); 

但我得到的是:

[ false, false, undefined, false, undefined ] 

任何想法如何做到这一点?

+0

的解决方案尝试[Array.filter](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/filter) –

+1

令人惊讶的是很难找到这个目标(我确信**有一个),可能是因为我t非常基本。我能找到的大多数问题都是关于对象数组等。 –

+0

这个与链接目标的唯一区别就是过滤的条件。 –

回答

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

console.log(filteredAry) 
1

想要filter而不是map

var foo = [false,false,true,false,true]; 
 
console.log(foo.filter(function(i){ return i !== true; }));

那请问你的问题问什么:具体滤除true值。显然,您可以根据需要调整过滤条件。

0

使用filter财产

var foo = [false, false, true, false, true]; 
var newArray = foo.filter(function(item) { 
    return item === false; 
}); 
console.log(newArray) 

DEMO

0

下面是与ramdajs

var foo = [false,false,true,false,true, undefined, 0]; 
var isFalsy = R.filter(R.not); 
isFalsy(foo); 

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