2017-12-20 11 views
0

を使用するにはIDが空の文字列でないオブジェクトを取得して配列をフィルタリングしようとしています。また、IDもnullではありません。は、どのように私はこのような配列を持つES6フィルタと機能OR声明

私はこれを期待しています:

[{id: "1"}, {id: "2"}, {id: "3"}, {id: "4"}]; 

を私はこの(ちょうど同じ配列)を取得:

[{id: "1"}, {id: "2"}, {id: ""}, {something: "else"}, {id: "3"}, {id: "4"}]; 

var array = [{id: "1"}, {id: "2"}, {id: ""}, {something: "else"}, {id: "3"}, {id: "4"}]; 
 
var filteredArray = array.filter(x => x.id != "" || x.id != null); 
 

 
console.log(filteredArray);

私が間違って何をしているのですか?どのようにOR文を使って配列をフィルタリングするのですか?私は本当に愚かだ

+0

"* nor *"は "***と** is not *"に変換されます。 – Bergi

答えて

0

...

は、私は、ORの代わりに、文を使用する必要があります。

array.filter(x => x.id != "" && x.id != null); 

var array = [{id: "1"}, {id: "2"}, {id: ""}, {something: "else"}, {id: "3"}, {id: "4"}]; 
 
var filteredArray = array.filter(x => x.id != "" && x.id != null); 
 

 
console.log(filteredArray);

+1

また、 'x =>!(x.id ==" "|| x.id == null)'を使用してください。 – Bergi

0

あなたは後方あなたのロジックを持っている - あなたは、そのIDが空の文字列されておらず、&&演算子を使用)NOT NULL項目をフィルタリングする:

array.filter(x => x.id != "" && x.id != null) 
// => [{"id":"1"},{"id":"2"},{"id":"3"},{"id":"4"}] 
関連する問題