
props.medications.filter(f => props.purpose === "" ? f : f.Purposes.forEach(i => i.Purpose === props.purpose))props.medications
  .filter(f => f.Purposes.findIndex(i => props.purpose === i.Purpose) > -1)
// Если ни одного нет, findIndex вернет -1,
// условие не выполнится и элемент отфильтруется.const props = {
  purpose: "Здоровье марсиан",
  medications: [
    {
      Article: "Первое",
      Purposes: [
        {
          Purpose: "Мужское здоровье"
        },
        {
          Purpose: "Женское здоровье"
        }
      ]
    },
    {
      Article: "Второе",
      Purposes: [
        {
          Purpose: "Детское здоровье"
        }
      ]
    },
    {
      Article: "Третье",
      Purposes: [
        {
          Purpose: "Здоровье марсиан"
        },
        {
          Purpose: "Мужское здоровье"
        }
      ]
    }
  ]
};
console.log(
  props.medications.filter(
    (f) => !props.purpose || f.Purposes.find((e) => e.Purpose === props.purpose)
  )
);