Как заставить метод filter / find возвращать поле объекта в javascript

#javascript #filter

#javascript #Фильтр

Вопрос:

У меня есть массив объектов с чем-то, называемым animalData

 animalData {
 type:"cat",
 object: SmallAnimal
 }
  

Учитывая список animalData, я хочу найти для первого с именем «cat» и вернуть animalData.object . Что мне нужно добавить к приведенному ниже заявлению, чтобы получить animalData.object?

 this.animals.find((animalData) => animalData.type == "cat");
  

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

1. Если у вас есть массив с несколькими cats, вы также можете сделать animals.filter(x => x.type === "cat").map(x => x.object) , который вернет массив всех object s для cats

Ответ №1:

find вернет первый экземпляр animalData , который соответствует предикату — если вам нужно свойство этого объекта, просто прочитайте его:

 const firstCat = this.animals.find((animalData) => animalData.type == "cat").object;
  

Вполне может быть undefined , что ваш find не возвращает результат.