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