【问题标题】:Map or/and filter to select elements in React映射或/和过滤以选择 React 中的元素
【发布时间】:2020-08-05 16:05:13
【问题描述】:

我的代码几乎可以正常工作。几乎,因为我需要获取所有呈现 Joe 的对象,但我得到两个或一个,这取决于 qoute.fields.user / qoute.fields.company 中的哪个是第一个。 所以,这些是我的数据,看起来像这样:

{
 id:1;
 user: joe;
 company: foo
},
{
 id:2;
 user: foo;
 company: joe
},
{
 id:3;
 user: joe;
 company: foo2
}

如果我运行这部分

const user = "joe";

const qoutes = this.state.qoutes.map((qoute, i) => 
user === qoute.fields.user && qoute.fields.company ? 
<ListItem id={i} key={i} qoute={qoute} />
: null)

我得到了 id:1 和 id:3。 如果我更改这部分并将公司放在首位,如下所示:

 user === qoute.fields.company && qoute.fields.user ? 

我得到了 id:2

我应该怎么做才能获得所有三个 id。 (id:1, id:2, id:3) 所有这些对象都有 Joe。 我知道这可能是简单的解决方案,但我坚持下去)有什么建议吗?

【问题讨论】:

    标签: reactjs dictionary filter


    【解决方案1】:

    您在伪代码中所做的是:

    if user = 'joe' and company is not null (return 1,3)
    
    if company = 'joe' and user is not null (return 2)
    

    测试用户和公司并将它们与 OR || 而不是 AND &amp;&amp; 组合:

    const qoutes = this.state.qoutes.map((qoute, i) => 
    user === qoute.fields.user || user === qoute.fields.company ? 
    <ListItem id={i} key={i} qoute={qoute} />
    : null)
    

    【讨论】:

    • 我知道这很简单)谢谢!
    猜你喜欢
    • 2020-11-18
    • 2021-07-26
    • 2011-04-13
    • 2010-11-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-22
    相关资源
    最近更新 更多