亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何通過嵌套在對象數組屬性中的對象屬性的值在對象數組中查找多個索引?

如何通過嵌套在對象數組屬性中的對象屬性的值在對象數組中查找多個索引?

泛舟湖上清波郎朗 2023-05-11 14:09:31
我有一個對象數組,每個對象都有一個“被監視”的屬性,它本身就是一個對象數組。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 (Avatar) - 我會得到:讓 AvatarWatchers = [0,2]我試過:AvatarWatchers = arr.filter((item) => item.watched.find(movieObj => movieObj.movieId == 7) > -1 )但它不起作用,我得到一個空數組。
查看完整描述

1 回答

?
搖曳的薔薇

TA貢獻1793條經驗 獲得超6個贊

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"}

                        ]

            }


        ];


let result = arr.map((item, index) => ({...item, index}))

            .filter(item => item.watched.find(watchedItem => watchedItem.movieName === 'Avatar'))

            .map(item => item.index);


console.log('expected result', result);


查看完整回答
反對 回復 2023-05-11
  • 1 回答
  • 0 關注
  • 146 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號