javascript - 如果状态是某种东西,则执行 .filter 和 .map,否则仅执行 .map

标签 javascript reactjs

我什至不确定是否可以这样做,但我会尝试解释我想要完成的任务。

我正在尝试过滤和映射一个数组,其中 labels.attributes.label === this.state.currentLabel

我正在让它发挥作用。但是如果 this.state.currentLabel === 'All' 我只想做 .map 而不是 .filter

我可以实现任何条件逻辑来使其正常工作吗?

以下是代码现在的样子:

{podcasts.filter((labels) => labels.attributes.label === this.state.currentLabel)
  .map((pod) => {
    const podId = pod.id.attributes['im:id']
    const podName = pod['im:name'].label

    return <PodcastItem key={podId} id={podId} name={podName} />
})}

抱歉,如果我解释得不好……我对编码还很陌生。因此,如果我能更好地描述它,请发表评论。

最佳答案

而不是像

那样链接
let ans = data.filter(..)
           .map(..)

你可以做到

let filtered = data; 

if( /* your state condition */) {
  filtered = data.filter(...)
}

let ans = filtered.map(...)

关于javascript - 如果状态是某种东西,则执行 .filter 和 .map,否则仅执行 .map,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52767607/

相关文章:

javascript - 即使父窗口已重新加载,也停止子窗口重新加载

javascript - 将 onload 函数的结果传递给变量

javascript - 将 KnockoutJS 与 JQuery 灯箱一起使用

reactjs - Material-UI slider 不会将名称 Prop 暴露给 Formik

javascript - 如何仅扩展平面列表中的一项

reactjs - 使用 React 上下文通过 AWS Amplify 保护路由

javascript - 箭头函数中的评估

javascript - react Bootstrap 导航栏 : How to right align a navbar item

reactjs - 如何使 Accordion 默认打开第一个选项卡 React JS

javascript - 将文件中的对象属性随机分配给 inline-css