在Lodash中创建子节点的集合

时间:2016-12-04 03:31:16

标签: reactjs lodash

我有一个有机会的数据结构,每个机会都有笔记。我想把所有与一个人相关的机会记录下来并展示给他们。现在我有下面的,这是有效的。但是,我想的是必须有一种更简单的方法,我不能拥有外部数组,而是从opportunityNotesList返回与.value()相同的结果。

    const thisNotes = {}
    const opportunityNotesList = _(opportunities)
        .map((opportunity, id) => ({id, ...opportunity}))
        .filter(opportunity => opportunity.linkToContact === id)
        .map(opportunity => {
            _(opportunity.notes)
                .map((note, id) => ({id, ...note}))
                .each(note  => {
                    thisNotes[`${note.id}`] = note
                })
        })

真的只是寻找一种更优雅的方式来解决这个问题。

1 个答案:

答案 0 :(得分:0)

我建议不要试图太优雅。我已经很难跟踪上面的代码了,想象另一个开发者必须把它拿起并做出改变!

将其分成自己的帮助者,或更好的选择器(例如,使用reselect)。

我同意,随着时间的推移,这种变化会变得非常痛苦 - 我似乎还有一件事情继续让我头疼。