最新消息: 电脑我帮您提供丰富的电脑知识,编程学习,软件下载,win7系统下载。

Lodash地图仅适用于条件

IT培训 admin 6浏览 0评论

Lodash地图仅适用于条件

我有一个名为events.json的文件,我需要使用.map来创建我的对象,

var data = require('./events.json')
var newEventList = data.events.map(events => ({
    id: events.id ,
    name: events.name ,
    venue: events.venue.name
}));

但是,有时我偶尔会得到两个相同的event.ids。在这些实例中,map方法在我的newEventList对象中创建一个重复的条目。如果id相同,我可以在map函数中设置条件以跳过该条目的“映射”吗?

要添加的一件事是,重复项在events.json中始终是连续的,因此If语句只会比较先前映射的项。

谢谢你的帮助。

回答如下:

使用lodash中提供的_.uniqBy(假设OP想要一个loadash解决方案)

 var data = require('./events.json');
 var _ = require('lodash')
 var newEventList = _.uniqBy(data.events,'id').map(events => ({
     id: events.id ,
     name: events.name ,
    venue: events.venue.name  
 }));

Lodash地图仅适用于条件

我有一个名为events.json的文件,我需要使用.map来创建我的对象,

var data = require('./events.json')
var newEventList = data.events.map(events => ({
    id: events.id ,
    name: events.name ,
    venue: events.venue.name
}));

但是,有时我偶尔会得到两个相同的event.ids。在这些实例中,map方法在我的newEventList对象中创建一个重复的条目。如果id相同,我可以在map函数中设置条件以跳过该条目的“映射”吗?

要添加的一件事是,重复项在events.json中始终是连续的,因此If语句只会比较先前映射的项。

谢谢你的帮助。

回答如下:

使用lodash中提供的_.uniqBy(假设OP想要一个loadash解决方案)

 var data = require('./events.json');
 var _ = require('lodash')
 var newEventList = _.uniqBy(data.events,'id').map(events => ({
     id: events.id ,
     name: events.name ,
    venue: events.venue.name  
 }));

与本文相关的文章

发布评论

评论列表 (0)

  1. 暂无评论