Простите за заголовок, но в основном это то, что я пытаюсь сделать:
У меня есть массив объектов, давайте назовем их собаками для этого примера. Каждый объект выглядит примерно так:
{
name: "Poodle",
keywords: ["Fluffy", "Intelligent", "Hypo-allergenic", "Loyal"]
}
Пользователь выбирает три слова, а затем я хочу найти массив объектов и сопоставить эти три слова со свойством «ключевых слов» в каждом массиве. Тогда у меня есть некоторая логика отображения:
- Если собака соответствует всем трем выбранным пользователем словам, я хочу вернуть только эту одну собаку.
- Если есть только собаки, которыесовпадение по 2 словам, тогда я хочу взять максимум 2 таких собак.
- Если есть только одна собака из 2 слов, а затем несколько матчей по 1 собаке, просто покажите собаку из 2 слов.
- Если собачьи спички состоят только из одного слова, то покажите максимум три из них.
По сути, я не спрашиваю, как делать маркеры, я могу понять, чтовне, но в идеале мне нужно множество собак и количество матчей рядом с каждой. Затем я могу выполнить некоторую фильтрацию по этому вопросу.
Поэтому мне нужен массив имен собак , с общим количеством совпадений, что-то вроде этого (если, конечно, нет лучшего способа, чем явсе уши):
[
["Poodle", 2],
["Labrador", 2],
["Schpitz", 1],
["Setter", 0],
["Pit Bull", 0]
]
Похоже ли это на лучший подход или есть более простой / лучший способ?