从数组javascript中删除true值

时间:2016-10-20 17:13:13

标签: javascript arrays

我有以下javascript数组:

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

我想要的是删除'true'值并保持这样的错误:

[false,false,false]

我试过这个:

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

但我得到的是:

[ false, false, undefined, false, undefined ]

任何想法如何实现这一目标?

4 个答案:

答案 0 :(得分:1)

Assinatura::join('relatorio_grupo','relatorio_grupo.id','=','assinatura.relatorio_grupo_id')
    ->join('relatorio','relatorio.grupo_id','=','relatorio_grupo.id')
    ->join('relatorio_excecao','relatorio_excecao.pessoa_id','=','assinatura.pessoa_id and relatorio.id = relatorio_excecao.id','left',true)
    ->whereNull('relatorio_excecao.id')
    ->where('assinatura.pessoa_id', $id)
    ->toSql();

答案 1 :(得分:1)

您需要filter,而不是map



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




这可以解决您的问题:专门过滤掉true值。显然,您可以根据需要调整过滤条件。

答案 2 :(得分:0)

使用filter属性

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

DEMO

答案 3 :(得分: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]