【发布时间】:2020-10-14 21:34:53
【问题描述】:
我有一个对象数组,每个对象都有一个“watched”属性,它本身就是一个对象数组。
let arr =
[
{
id: 1,
name: "A",
watched: [
{movieId: 7, movieName: "Avatar"} ,
{movieId: 8, movieName: "Titanic"}
]
},
{
id: 2,
name: "B",
watched: [
{movieId: 1, movieName: "Armageddon"} ,
{movieId: 8, movieName: "Titanic"}
]
},
{
id: 3,
name: "C",
watched: [
{movieId: 1, movieName: "Armageddon"} ,
{movieId: 7, movieName: "Avatar"}
]
}
]
我需要一个根据给定 MovieId 的索引数组。 如果我想要一组观看过movieId的索引。 7(化身) - 我会得到:
让 AvatarWatchers = [0,2]
我试过了:
AvatarWatchers = arr.filter((item) => item.watched.find(movieObj => movieObj.movieId == 7) > -1 )
但它不起作用,我得到一个空数组。
【问题讨论】:
标签: javascript arrays object filter find