JolyCode
@JolyCode
junior frontend developer

Как найти объекты во вложенных массивах?

Есть массив
const CARDS = [
  {
    heading: "История поиска",
    mainId: 1,
    items: [],
  },
  {
    heading: "Банки",
    mainId: 2,
    items: [
      {
        id: "1",
        title: "Тинькофф",
        rating: "4",
        currency: ["RUB", "USD", "EUR"],
      },
      {
        id: "2",
        title: "Альфа Банк",
        rating: "4",
        currency: ["RUB", "USD"],
      },
      {
        id: "3",
        title: "Русский Стандарт",
        rating: "4",
        currency: ["RUB"],
      },
      { id: "4", title: "Открытие", rating: "4", currency: ["RUB", "USD"] },
    ],
  },
  {
    heading: "Переводы",
    mainId: 3,
    items: [
      {
        id: "4",
        title: "Открытие",
        rating: "4",
        currency: ["RUB", "USD"],
      },
    ],
  },
  {
    heading: "Криптовалюты",
    mainId: 4,
    items: [
      {
        id: "5",
        title: "Bitcoin",
        rating: "4",
        currency: ["BTC", "WBTC", "BTCBEP20"],
      },
      {
        id: "6",
        title: "Etherium",
        rating: "4",
        currency: ["ETH", "ETHBEP20"],
      },
      {
        id: "7",
        title: "Litecoin",
        rating: "4",
        currency: ["LTC"],
      },
    ],
  },
];

Хочу при вводе в поиске, скажем Тинькофф, чтобы возвращал его карточку.
  • Вопрос задан
  • 137 просмотров
Решения вопроса 2
twobomb
@twobomb
let str = "тинькоф";
let arr = CARDS.map(e=>e.items).flat().filter(e=>e.title.toLocaleLowerCase().includes(str.toLocaleLowerCase()) );
Ответ написан
otdameskapizm
@otdameskapizm
Помог ответ? Отметь решением...
Можно так:
const searchedValue = 'Тинькофф';

const items = CARDS.flatMap(({ items }) => items);
const [card] = items
  .filter(({ title }) => title.toLowerCase() === searchedValue.toLowerCase());
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы