Я новичок. Представьте, что данные в 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? Я знаю, что должен использовать ключевое слово «включает».
Если кто-то может показать мне трюк, я застрял на несколько дней
Поскольку мои данные такие, и это очень длинные данные, мне приходится иметь дело с этим.
О, я вижу, в этом случае вы можете использовать Object.keys и цикл на уровне объекта 1, а затем так же на его дочерних элементах.
Можете ли вы сделать демо с моими данными?
попробуй это.
Object.values(myData)
.flatMap(it => Object.values(it))
.filter(it => it.displayText.includes('word1'));
Почему у вас есть ключевые имена, такие как 1, 2? почему бы не использовать вместо этого массив, если вы хотите использовать числовые индексы?