dog-breeds-group
Version:
A library to find dog breed groups
449 lines (440 loc) • 12.4 kB
JavaScript
const dogBreedsByGroup = [
{
group: "Group 1 - Sheepdogs and Cattle Dogs (excluding Swiss Cattle Dogs)",
breeds: [
"Australian Kelpie",
"Australian Cattle Dog",
"Australian Shepherd",
"Bearded Collie",
"Berger de la Beauce - Beauceron",
"Berger de la Brie - Briard",
"Berger de Picardie",
"Bobtail",
"Border Collie",
"Bovaro delle Ardenne",
"Bovaro delle Fiandre",
"Cane Lupo Cecoslovacco",
"Cane Lupo di Saarloos",
"Bergamasco Sheepdog",
"Catalan Sheepdog",
"Croatian Sheepdog",
"Pyrenean Sheepdog Smooth-Faced",
"Pyrenean Sheepdog Long-Haired",
"Tatra Sheepdog",
"South Russian Shepherd Dog",
"Vallée Shepherd Dog",
"Mallorquin Shepherd Dog",
"Maremma-Abruzzese Sheepdog",
"Dutch Shepherd",
"Scottish Sheepdog Short-Haired",
"Scottish Sheepdog Long-Haired",
"German Shepherd",
"Cao de Serra de Aires",
"Komondor",
"Kuvasz",
"Lancashire Heeler",
"Mudi",
"Belgian Sheepdog Groenendael",
"Belgian Sheepdog Laekenois",
"Belgian Sheepdog Malinois",
"Belgian Sheepdog Tervuren",
"Swiss White Shepherd",
"Puli",
"Pumi",
"Romanian Carpathian Shepherd Dog",
"Romanian Mioritic Shepherd Dog",
"Schapendoes",
"Shetland Sheepdog",
"Slovensky Cuvac",
"Stumpy Tail Cattle Dog",
"Welsh Corgi Cardigan",
"Welsh Corgi Pembroke"
]
},
{
group: "Group 2 - Pinscher and Schnauzer type dogs, Molossoids and Swiss Cattle Dogs",
breeds: [
"German Alano",
"Austrian Pinscher",
"Bernese Mountain Dog",
"Appenzeller Mountain Dog",
"Entlebuch Mountain Dog",
"Boxer",
"Broholmer",
"English Bulldog",
"Bullmastiff",
"Cane Corso",
"Pyrenean Mountain Dog",
"Anatolian Shepherd Dog",
"Caucasian Shepherd Dog",
"Central Asian Shepherd Dog",
"Ciarplanina Shepherd Dog",
"Karst Shepherd Dog",
"Serra de Estrela Dog",
"Atlas Dog",
"Castro Laboreiro Dog",
"Saint Bernard",
"Fonnese Dog",
"Tosa",
"Portuguese Water Dog",
"São Miguel Cattle Dog",
"Dobermann",
"Dogo Argentino",
"Dogue de Bordeaux",
"Fila Brasileiro",
"Swiss Mountain Dog",
"Hovawart",
"Landseer",
"Leonberger",
"Mastiff",
"Pyrenean Mastiff",
"Neapolitan Mastiff",
"Spanish Mastiff",
"Tibetan Mastiff",
"Mallorcan Mastiff",
"Pinscher",
"Miniature Pinscher",
"Rafeiro do Alentejo",
"Rottweiler",
"Schipperke",
"Giant Schnauzer",
"Schnauzer",
"Miniature Schnauzer",
"Shar Pei",
"Dutch Smoushond",
"Newfoundland",
"Russian Black Terrier",
"Tornjak"
]
},
{
group: "Group 3 - Terriers",
breeds: [
"Airedale Terrier",
"American Staffordshire Terrier",
"Australian Terrier",
"Bedlington Terrier",
"Border Terrier",
"Boston Terrier",
"Bull Terrier",
"Miniature Bull Terrier",
"Cairn Terrier",
"Cesky Terrier",
"Dandie Dinmont Terrier",
"German Hunting Terrier",
"English Toy Terrier",
"Smooth Fox Terrier",
"Rough Fox Terrier",
"German Hunting Terrier",
"Glen of Imaal Terrier",
"Irish Terrier",
"Jack Russel Terrier",
"Kerry Blue Terrier",
"Lakeland Terrier",
"Manchester Terrier",
"Norfolk Terrier",
"Norwich Terrier",
"Parson Jack Russel Terrier",
"Scottish Terrier",
"Sealyham Terrier",
"Silky Terrier",
"Skye Terrier",
"Soft Coated Wheaten Terrier",
"Staffordshire Bull Terrier",
"Brazilian Terrier",
"Japanese Terrier",
"Welsh Terrier",
"West Highland White Terrier"
]
},
{
group: "Group 4 - Dachshunds",
breeds: [
"Short-Haired Dachshund",
"Wire-Haired Dachshund",
"Long-Haired Dachshund",
"Kaninchen Short-Haired",
"Kaninchen Wire-Haired",
"Kaninchen Long-Haired",
"Miniature Short-Haired Dachshund",
"Miniature Wire-Haired Dachshund",
"Miniature Long-Haired Dachshund"
]
},
{
group: "Group 5 - Spitz-type and Primitive-type Dogs",
breeds: [
"Ainu Dog - Hokkaido",
"Akita Inu",
"Alaskan Malamute",
"Basenji",
"Canaan Dog",
"Karelian Bear Dog",
"Canary Islands Dog",
"Mexican Hairless Dog",
"Peruvian Hairless Dog",
"Chow Chow",
"Cirneco dell'Etna",
"Eurasier",
"Finnish Spitz",
"Japanese Chin",
"Groenlandese",
"Iceland Sheepdog",
"Jamthund",
"Japanese Spitz",
"Kai Dog",
"Kishu Inu",
"Korean Jindo Dog",
"Siberian Laika",
"Eastern Siberian Laika",
"Russian-European Laika",
"Lapinkoira",
"Lapinporokoira",
"Norrbottenspets",
"Norwegian Buhund",
"Norwegian Elkhound Grey",
"Norwegian Elkhound Black",
"Norwegian Lundehund",
"Pharaoh Hound",
"Podenco Canario",
"Ibizan Hound Smooth",
"Ibizan Hound Rough",
"Portuguese Podengo Large Smooth",
"Portuguese Podengo Large Rough",
"Portuguese Podengo Medium Smooth",
"Portuguese Podengo Medium Rough",
"Portuguese Podengo Small Smooth",
"Portuguese Podengo Small Rough",
"Samoyed",
"Shiba Inu",
"Shikoku",
"Siberian Husky",
"American Eskimo Dog Miniature",
"American Eskimo Dog Standard",
"American Eskimo Dog Toy",
"German Spitz Giant",
"German Spitz Large",
"German Spitz Medium",
"German Spitz Small",
"German Spitz Miniature",
"Swedish Lapphund",
"Swedish Vallhund",
"Taiwan Dog",
"Thai Ridgeback",
"Italian Volpino"
]
},
{
group: "Group 6 - Scenthounds and Bloodhounds",
breeds: [
"Alpenlaendische Dachsbracke",
"Anglo-Française de Petite Vénerie",
"Ariégeois",
"Bavarian Mountain Scenthound",
"Basset Artésien Normand",
"Basset Bleu de Gascogne",
"Basset Fauve de Bretagne",
"Basset Griffon Vendéen",
"Basset Hound",
"Beagle",
"Beagle Harrier",
"Billy",
"Black and Tan Coonhound",
"Bloodhound",
"Briquet Griffon Vendéen",
"Chien d'Artois",
"Dalmatian",
"Drever",
"Dunker",
"English Foxhound",
"American Foxhound",
"Français Blanc et Noir",
"Français Blanc et Orange",
"Français Tricolore",
"Gr. Anglo-Français Blanc et Noir",
"Gr. Anglo-Français Blanc et Orange",
"Gr. Anglo-Français Tricolore",
"Grand Bleu de Gascogne",
"Grand Gascogne-Saintongeois",
"Grand Griffon Vendéen",
"Griffon Bleu de Gascogne",
"Griffon Fauve de Bretagne",
"Griffon Nivernais",
"Haldenstövare",
"Hamiltonstövare",
"Hannoverischer Schweisshund",
"Harrier",
"Hygenhund",
"Jack Russel Terrier",
"Otterhound",
"Parson Jack Russel Terrier",
"Petit Basset Griffon Vendéen",
"Petit Bleu de Gascogne",
"Petit Gascon Saintongeois",
"Piccolo Segugio del Bernese",
"Piccolo Segugio del Giura",
"Piccolo Segugio del Lucernese",
"Piccolo Segugio Svizzero",
"Plott Hound",
"Poitevin",
"Porcelaine",
"Redbone Coonhound",
"Rhodesian Ridgeback",
"Spanish Sabueso",
"Schillerstövare",
"Appennine Hound",
"Austrian Hound",
"Bernese Mountain Hound",
"Jurassic Hound",
"Lucerne Hound",
"Bosnian Hound",
"Istrian Hound",
"Transylvanian Hound",
"Westphalian Hound",
"German Hound",
"United Hound"
]
},
{
group: "Group 7 - Pointing Dogs",
breeds: [
"Italian Pointer",
"Ariége Pointer",
"Bourbonnais Pointer",
"Burgos Pointer",
"Portuguese Pointer",
"Hungarian Pointer Short-Haired",
"Hungarian Pointer Strong-Haired",
"Auvergne Pointer",
"Saint-Germain Pointer",
"Dupuy Pointer",
"Gasconne Pointer",
"Pyrenees Pointer",
"Bohemian Rough Pointer",
"Slovakian Rough Pointer",
"German Short-Haired Pointer",
"German Rough-Haired Pointer",
"German Long-Haired Pointer",
"German Wire-Haired Pointer",
"Drentsche Patrijshond",
"Picardie Spaniel",
"Brittany Spaniel",
"French Spaniel",
"Picard Spaniel",
"Pont Audemer Spaniel",
"Danish Honsehund",
"Griffon Boulet",
"Korthals Griffon",
"Large Münsterländer",
"Small Münsterländer",
"English Pointer",
"Pudelpointer",
"Gordon Setter",
"English Setter",
"Irish Setter",
"Irish Setter Red-White",
"Spinone Italiano",
"Stabyhoun",
"Weimaraner Short-Haired",
"Weimaraner Long-Haired"
]
},
{
group: "Group 8 - Retrievers, Flushing Dogs and Water Dogs",
breeds: [
"Clumber Spaniel",
"American Cocker Spaniel",
"English Cocker Spaniel",
"Curly-Coated Retriever",
"Field Spaniel",
"Flat-Coated Retriever",
"German Spaniel",
"Golden Retriever",
"Irish Water Spaniel",
"Kooikerhondje",
"Labrador Retriever",
"Lagotto Romagnolo",
"Nova Scotia Duck Tolling Retriever",
"Spanish Water Dog",
"Dutch Spaniel",
"English Springer Spaniel",
"Sussex Spaniel",
"Welsh Springer Spaniel"
]
},
{
group: "Group 9 - Companion Dogs",
breeds: [
"Affenpinscher",
"Standard Poodle",
"Medium Poodle",
"Miniature Poodle",
"Toy Poodle",
"Bichon Frisé",
"Bichon Havanese",
"Black and Tan Toy Terrier",
"Bolognese",
"French Bulldog",
"Kyi Leo",
"Pug",
"Cavalier King Charles Spaniel",
"Chinese Crested Dog",
"Coton de Tuléar",
"Short-Haired Chihuahua",
"Long-Haired Chihuahua",
"Papillon",
"Phalene",
"Belgian Griffon",
"Brussels Griffon",
"Japanese Chin",
"King Charles Spaniel",
"Kromfohrländer",
"Lhasa Apso",
"Maltese",
"Pekingese",
"Petit Brabantino",
"Little Lion Dog",
"Shih Tzu",
"Tibetan Terrier",
"Tibetan Spaniel",
"Russian Toy",
"Yorkshire Terrier"
]
},
{
group: "Group 10 - Sighthounds",
breeds: [
"Azawakh",
"Borzoi",
"Deerhound",
"Galgo",
"Greyhound",
"Irish Wolfhound",
"Afghan Hound",
"Polish Hound",
"Hungarian Greyhound",
"Italian Greyhound",
"Saluki",
"Sloughi",
"Whippet"
]
}
];
function findGroupByBreed(breedName) {
const lowerCaseBreed = breedName.toLowerCase();
const foundGroup = dogBreedsByGroup.find(group =>
group.breeds.some(breed => breed.toLowerCase() === lowerCaseBreed)
);
return foundGroup ? foundGroup.group : undefined;
}
function findBreedsByGroup(groupNumber) {
const groupName = `Group ${groupNumber}`;
const foundGroup = dogBreedsByGroup.find(group =>
group.group.startsWith(groupName)
);
return foundGroup ? foundGroup.breeds : undefined;
}
module.exports = {
findGroupByBreed,
findBreedsByGroup,
};