VueX Getter 从数组中过滤唯一 id
Posted
技术标签:
【中文标题】VueX Getter 从数组中过滤唯一 id【英文标题】:VueX Getter to filter unique id's from array 【发布时间】:2019-01-14 10:46:25 【问题描述】:我想过滤一个数组(包含对象),以获取包含唯一correspondence_id
的每条消息。
**Store 包含“消息”(具有此结构):
Getters 我想过滤它。
getCorrespondedUsers: (state) =>
return state.messages.unique
消息都包含correspondence_id
,但是现在我只能抓取所有消息,但我只想抓取独特的人。这样做的目的是我有消息,但在左侧我想显示我发过消息的每个人(但我不确定我如何只能显示每个人一次)。
如何过滤我的消息以仅返回带有唯一 correspondence_id
的每条消息?
【问题讨论】:
如果你使用Lodash,你可以试试_.uniqBy @MarlonBarcarol 没有意识到我在使用 lodash,它工作得很好,谢谢。 【参考方案1】:您可以使用 lodash 来保持代码的可读性。示例:
// don't forget to import only what
// you really need, not the whole library
import uniqBy from 'lodash/uniqBy'
export default
getCorrespondedUsers: state => uniqBy(state.messages, 'correspondence_id')
【讨论】:
【参考方案2】:有一个solution 这个问题。
所以你可以这样做:
getCorrespondedUsers: (state) =>
return state.messages.filter((obj, pos, arr) =>
return arr.map(mapObj => mapObj["corresponde_id"]).indexOf(obj["corresponde_id"]) === pos;
);
我测试了here。
我希望它有效!
【讨论】:
以上是关于VueX Getter 从数组中过滤唯一 id的主要内容,如果未能解决你的问题,请参考以下文章