Как я могу отфильтровать массив объекта с помощью массива по элементу внутри него? javascript

#javascript #arrays #object #iteration

#javascript #массивы #объект #итерация

Вопрос:

Я хочу отфильтровать этот массив объектов по одному избранному городу, например, по Парижу, но это не работает, я хотел бы получить массив с объектом, который содержит «Париж» в избранных городах, пожалуйста, я попробовал несколько вариантов

        const favCity= [{
                    name: "shaun",
                    favoriteCities: ["Paris", "London"]
                  },
                  {
                    name: "valerie",
                    favoriteCities: ["Paris", "NewYork"]
                  },
                  {
                    name: "peter",
                    favoriteCities: ["London", "Berlin"]
                  }
                ]
            
            const res = favCity.filter((ele,i)=>{

 return {
   name: ele.name,
   favoriteCities: ele.favoriteCities.filter(element=>
         element === "Paris" ? ele.favoriteCities : [])
        }
});


console.log(res)
 

Комментарии:

1. ele.favoriteCities.includes("Paris") ?

2. Вы не предоставили код, который имеет смысл. Это функция return объекта? }); предполагает, что нет. ele.favoriteCities ? Где это? console.log(res) ? res не определено.

Ответ №1:

 let favCity= [{
                    name: "shaun",
                    favoriteCities: ["Paris", "London"]
                  },
                  {
                    name: "valerie",
                    favoriteCities: ["Paris", "NewYork"]
                  },
                  {
                    name: "peter",
                    favoriteCities: ["London", "Berlin"]
                  }
                ]
            
favCity = favCity.filter(element => element.favoriteCities.includes("Paris"))

console.log(favCity)