2016-10-20 55 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]