Lodash过滤掉来自对象的rougue项目

时间:2017-12-19 20:08:17

标签: javascript json node.js object lodash

我正在使用lodash map和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,但我不确定在map函数中将它用于何处。

1 个答案:

答案 0 :(得分: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
}));

但问题是你为什么需要uniq?通常id是一个应该是uniq的属性