【发布时间】:2020-05-13 18:41:48
【问题描述】:
我的想法是单击左侧导航栏上的任何按钮,只要logos 对象中单击按钮的名称与projects 中items 对象中的任何名称匹配,然后显示这些对象。
当我单击左侧的任何按钮时,我将该对象的 active 属性转换为 logos 对象内的 true。在我过滤了这些值之后,我可以在控制台中看到所有正确的值,但我无法循环它们——使用for 循环或map。奇怪的是,当我写 filteredValues[0] 时,我能够将该数据输出到屏幕上,但由于我想要其中一些点击值的多个输出,所以这不是一个选项。任何帮助表示赞赏。谢谢!
这些是我的项目
这些是我的标志
const Homepage = () => {
const {state} = useContext(Context)
const {projects,logos} = state;
return (
<>
<div className="container">
<Language />
<div className="homepage">
{logos.map(logo => {
let filteredValues;
if(logo.active == true){
filteredValues = Object.values(projects).filter(({items}) => Object.values(items).includes(logo.name))
filteredValues.map((val) =>{
console.log(val)
return(
<div>{val.title}</div>
)
}) //end of filteredValues.map
} //end of if
}) // end of logos.map
}
</div>
</div>
</>
)}
【问题讨论】:
-
是数组还是对象?
标签: javascript reactjs filtering javascript-objects es6-map