【发布时间】:2021-09-09 19:34:23
【问题描述】:
不能在 .map() 中使用 .filter()。我有数组“itemsArr”
const itemsArr = [9, 10, 13]
和其他数组“数据”
const data = [{id: 1}, {id: 2}, ... {id: 99}]
我正在尝试执行这样的代码:
itemsArr.map(item => (
data.filter((e) => e.id === item).map(item => (
console.log(item.id)
))
))
但是没有任何效果,控制台是空的。 我只想从我的“数据”数组中过滤掉“itemsArr”数组中带有“id”的记录
这样的代码可以正常工作:
itemsArr.map(item => (
data.map(item => (
console.log(item.id)
))
))
更新:
{
itemsArr.map(item => (
data.filter((e) => e.id === item).map(item => (
<div key={item.id}>
<Link href={`/${item.cat}`}><a>{item.cat}</a></Link>
<Link href={`/${item.cat}/${item.id}`}><a>{item.name}</a></Link>
<Link href={`/${item.cat}/${item.id}`}><a></a></Link>
<img alt={item.name} src={`/images/${item.imgmdh}`}></img>
</div>
))
))
}
【问题讨论】:
-
你能说明目标吗?是否要获取
data数组中具有itemsArr中的ID 的对象数组? -
@danh 目标 - 从具有“数据”对象的数组中仅显示与 itemsArr 数组匹配的那些 ID。而不是 console.log 我将显示布局
-
@danh 我添加了更完整的代码
标签: javascript arrays ecmascript-6