Как отфильтровать объект с несколькими ключами внутри

Я новичок. Представьте, что данные в js-файле такие:

const myData = {
  1: {
    1: {
      displayText: "word1",
      text: "worddisplay1",
    },
    2: {
      displayText: "word1",
      text: "worddisplay1",
    },
    3: {
     displayText: "word3",
      text: "worddisplay3",
    }
  },
 2: {
    1: {
      displayText: "word4",
      text: "worddisplay4",
    },
    2: {
      displayText: "word5",
      text: "worddisplay5",
    },
    3: {
     displayText: "word6",
      text: "worddisplay6",
    }
  }
}

Я хотел бы сделать фильтр поиска в этих данных в javascript.

Например, если я введу слово «display1», он выдаст мне все результаты, содержащие слово «display1».

Я пробовал так:

 Object.keys(myData).forEach((k) => {
      console.info(k, myData[k]);
    });

Но я не знаю, что мне делать дальше, должен ли я использовать forEach внутри forEach? Я знаю, что должен использовать ключевое слово «включает».

Если кто-то может показать мне трюк, я застрял на несколько дней

Почему у вас есть ключевые имена, такие как 1, 2? почему бы не использовать вместо этого массив, если вы хотите использовать числовые индексы?

Vinay 20.03.2022 14:23

Поскольку мои данные такие, и это очень длинные данные, мне приходится иметь дело с этим.

SafEvans 20.03.2022 14:28

О, я вижу, в этом случае вы можете использовать Object.keys и цикл на уровне объекта 1, а затем так же на его дочерних элементах.

Vinay 20.03.2022 14:31

Можете ли вы сделать демо с моими данными?

SafEvans 20.03.2022 14:32
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
4
48
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

попробуй это.


Object.values(myData)
  .flatMap(it => Object.values(it))
  .filter(it => it.displayText.includes('word1'));

Другие вопросы по теме