2017-12-19 19 views
0

からrougue項目をフィルタリング。Lodashは、私がlodashマップとuniqbyを使用してJSONファイルevents.jsonからオブジェクトを作成していたオブジェクト

非常にまれに、私は「イギリス」以外の国を持っているイベントを取得します。私は結果にそれらを必要としません、どのように私は "英国"ではないイベントを 'マッピングしない'に行くだろう。ありがとう

var _ = require('lodash'); 
var data = require('./events.json') 

var newEventList = _.uniqBy(data.events,'id').map(events => ({ 
    id: events.id , 
    name: events.name , 
    venue: events.venue.name , 
    address: events.place.location.street + " " + events.place.location.city + " " + events.place.location.zip + " " + events.place.location.country 
})); 

私は_.filterを見てきましたが、マップ機能内でどこで使用するのか分かりません。

+3

UNIQあるべき財産である第一filter'。 –

+0

私はすべてがUniqBy&Mapと同じ行でできることを期待していました。 –

+2

それができる - のnoobの質問には '.filter((イベント)=> event.place.location.country === "イギリス")' – user184994

答えて

2

あなたは、マップの前または後に、フィルタを使用することができます。しかし、地図の前にはもっと便利になります。

var newEventList = _.uniqBy(data.events,'id').filter(event => event.place.location.country === 'United Kingdom').map(event => ({ 
    id: event.id , 
    name: event.name , 
    venue: event.venue.name , 
    address: event.place.location.street + " " + event.place.location.city + " " + event.place.location.zip + " " + event.place.location.country 
})); 

しかし、なぜあなたはidによってuniqが必要ですか?普通は、idは `使用

+0

ありがとうございました。あなたが思っていたのですが、時にはデータファイルに重複があり、削除する必要がありました。 –

+0

上記のコメントを取得するには、@ user184994へのクレジットはありますが、 。 –

関連する問題