Skip to content

Instantly share code, notes, and snippets.

@timbillstrom
Last active April 5, 2025 07:47
Show Gist options
  • Select an option

  • Save timbillstrom/1e5d747ad7f88186d45731ae426a592f to your computer and use it in GitHub Desktop.

Select an option

Save timbillstrom/1e5d747ad7f88186d45731ae426a592f to your computer and use it in GitHub Desktop.
Sveriges alla kommuner grupperade per län i en strukturerad JSON. (rättstavning ej genomförd)
[
{
"name": "Blekinge",
"cities": [
"Karlshamn",
"Karlskoga",
"Olofström",
"Ronneby",
"Sölvesborg"
]
},
{
"name": "Dalarna",
"cities": [
"Avesta",
"Borlänge",
"Falun",
"Gagnef",
"Hedemora",
"Leksand",
"Ludvika",
"Malung-Sälen",
"Mora",
"Orsa",
"Rättvik",
"Smedjebacken",
"Säter",
"Vansbro",
"Älvdalen"
]
},
{
"name": "Gotland",
"cities": [
"Gotland"
]
},
{
"name": "Gävleborg",
"cities": [
"Bollnäs",
"Gävle",
"Hofors",
"Hudiksvall",
"Ljusdal",
"Nordanstig",
"Ockelbo",
"Ovanåker",
"Sandviken",
"Söderhamn"
]
},
{
"name": "Halland",
"cities": [
"Falkenberg",
"Halmstad",
"Hylte",
"Kungsbacka",
"Laholm",
"Varberg"
]
},
{
"name": "Jämtland",
"cities": [
"Berg",
"Bräcke",
"Härjedalen",
"Krokom",
"Ragunda",
"Strömsund",
"Åre",
"Östersund"
]
},
{
"name": "Jönköping",
"cities": [
"Aneby",
"Eksjö",
"Gislaved",
"Gnosjö",
"Habo",
"Jönköping",
"Mullsjö",
"Nässjö",
"Sävsjö",
"Tranås",
"Vaggeryd",
"Vetlanda",
"Värnamo"
]
},
{
"name": "Kalmar",
"cities": [
"Borgholm",
"Emmaboda",
"Hultsfred",
"Högsby",
"Kalmar",
"Mönsterås",
"Mörbylånga",
"Nybro",
"Oskarshamn",
"Torsås",
"Vimmerby",
"Västerviks"
]
},
{
"name": "Kronoberg",
"cities": [
"Alvesta",
"Lessebo",
"Ljungby",
"Markaryd",
"Tingsryd",
"Uppvidinge",
"Växjö",
"Älmhult"
]
},
{
"name": "Norrbotten",
"cities": [
"Arjeplog",
"Arvidsjaur",
"Boden",
"Gällivare",
"Haparanda",
"Jokkmokk",
"Kalix",
"Kiruna",
"Luleå",
"Pajala",
"Piteå",
"Älvsbyn",
"Överkalix",
"Övertorneå"
]
},
{
"name": "Skåne",
"cities": [
"Bjuv",
"Bromölla",
"Burlövs",
"Båstad",
"Eslöv",
"Helsingborg",
"Hässleholm",
"Höganäs",
"Hörby",
"Höör",
"Klippan",
"Kristianstad",
"Kävlinge",
"Landskrona",
"Lomma",
"Lund",
"Malmö",
"Osby",
"Perstorp",
"Simrishamn",
"Sjöbo",
"Skurup",
"Staffanstorp",
"Svalövs",
"Svedala",
"Tomelilla",
"Trelleborg",
"Vellinge",
"Ystad",
"Åstorp",
"Ängelholm",
"Örkeljunga",
"Östra Göinge"
]
},
{
"name": "Stockholm",
"cities": [
"Botkyrka",
"Danderyd",
"Ekerö",
"Haninge",
"Huddinge",
"Järfälla",
"Lidingö",
"Nacka",
"Norrtälje",
"Nykvarn",
"Nynäshamn",
"Salem",
"Sigtuna",
"Sollentuna",
"Solna",
"Stockholm",
"Sundbyberg",
"Södertälje",
"Tyresö",
"Täby",
"Upplands-Bro",
"Upplands Väsby",
"Vallentuna",
"Vaxholm",
"Värmdö",
"Österåker"
]
},
{
"name": "Södermanland",
"cities": [
"Eskilstuna",
"Flen",
"Gnesta",
"Katrineholm",
"Nyköping",
"Oxelösund",
"Strängnäs",
"Trosa",
"Vingåker"
]
},
{
"name": "Uppsala",
"cities": [
"Enköping",
"Heby",
"Håbo",
"Knivsta",
"Tierp",
"Uppsala",
"Älvkarleby",
"Östhammar"
]
},
{
"name": "Värmland",
"cities": [
"Arvika",
"Eda",
"Filipstad",
"Forshaga",
"Grums",
"Hagfors",
"Hammarö",
"Karlstad",
"Kil",
"Kristinehamn",
"Munkfors",
"Storfors",
"Sunne",
"Säffle",
"Torsby",
"Årjäng"
]
},
{
"name": "Västerbotten",
"cities": [
"Bjurholm",
"Dorotea",
"Lycksele",
"Malå",
"Nordmaling",
"Norsjö",
"Robertsfors",
"Skellefteå",
"Sorsele",
"Storuman",
"Umeå",
"Vilhelmina",
"Vindeln",
"Vännäs",
"Åsele"
]
},
{
"name": "Västernorrland",
"cities": [
"Härnösand",
"Kramfors",
"Sollefteå",
"Sundsvall",
"Timrå",
"Ånge",
"Örnsköldsvik"
]
},
{
"name": "Västmanland",
"cities": [
"Arboga",
"Fagersta",
"Hallstahammar",
"Kungsör",
"Köping",
"Norberg",
"Sala",
"Skinnskatteberg",
"Surahammar",
"Västerås"
]
},
{
"name": "Västra Götaland",
"cities": [
"Ale",
"Alingsås",
"Bengtsfors",
"Bollebygd",
"Borås",
"Dals-Ed",
"Essunga",
"Falköping",
"Färgelanda",
"Grästorp",
"Gullspång",
"Göteborg",
"Götene",
"Herrljunga",
"Hjo",
"Härryda",
"Karlsborg",
"Kungsälv",
"Lerum",
"Lidköping",
"Lilla Edet",
"Lysekil",
"Mariestad",
"Mark",
"Melleruds",
"Munkedal",
"Mölndal",
"Orust",
"Partille",
"Skara",
"Skövde",
"Sotenäs",
"Stenungsund",
"Strömstad",
"Svenljunga",
"Tanum",
"Tibro",
"Tidaholm",
"Tjörn",
"Tranemo",
"Trollhättan",
"Töreboda",
"Uddevalla",
"Ulricehamn",
"Vara",
"Vårgårda",
"Vänersborg",
"Åmål",
"Öckerö"
]
},
{
"name": "Örebro",
"cities": [
"Askersunds",
"Degerfors",
"Hallsberg",
"Hällefors",
"Karlskoga",
"Kumla",
"Laxå",
"Lekeberg",
"Lindesberg",
"Ljusnarsberg",
"Nora",
"Örebro"
]
},
{
"name": "Östergötland",
"cities": [
"Boxholm",
"Finspång",
"Kinda",
"Linköping",
"Mjölby",
"Motala",
"Norrköping",
"Söderköping",
"Vadstena",
"Valdemarsvik",
"Ydre",
"Åtvidaberg",
"Ödeshög"
]
}
]
@Greenheart
Copy link

Greenheart commented Apr 5, 2025

Här är en uppdaterad och rättad version:

[
  {
    "name": "Blekinge län",
    "cities": [
      "Karlshamn",
      "Karlskrona",
      "Olofström",
      "Ronneby",
      "Sölvesborg"
    ]
  },
  {
    "name": "Dalarnas län",
    "cities": [
      "Avesta",
      "Borlänge",
      "Falun",
      "Gagnef",
      "Hedemora",
      "Leksand",
      "Ludvika",
      "Malung-Sälen",
      "Mora",
      "Orsa",
      "Rättvik",
      "Smedjebacken",
      "Säter",
      "Vansbro",
      "Älvdalen"
    ]
  },
  {
    "name": "Gotlands län",
    "cities": [
      "Gotland"
    ]
  },
  {
    "name": "Gävleborgs län",
    "cities": [
      "Bollnäs",
      "Gävle",
      "Hofors",
      "Hudiksvall",
      "Ljusdal",
      "Nordanstig",
      "Ockelbo",
      "Ovanåker",
      "Sandviken",
      "Söderhamn"
    ]
  },
  {
    "name": "Hallands län",
    "cities": [
      "Falkenberg",
      "Halmstad",
      "Hylte",
      "Kungsbacka",
      "Laholm",
      "Varberg"
    ]
  },
  {
    "name": "Jämtlands län",
    "cities": [
      "Berg",
      "Bräcke",
      "Härjedalen",
      "Krokom",
      "Ragunda",
      "Strömsund",
      "Åre",
      "Östersund"
    ]
  },
  {
    "name": "Jönköpings län",
    "cities": [
      "Aneby",
      "Eksjö",
      "Gislaved",
      "Gnosjö",
      "Habo",
      "Jönköping",
      "Mullsjö",
      "Nässjö",
      "Sävsjö",
      "Tranås",
      "Vaggeryd",
      "Vetlanda",
      "Värnamo"
    ]
  },
  {
    "name": "Kalmar län",
    "cities": [
      "Borgholm",
      "Emmaboda",
      "Hultsfred",
      "Högsby",
      "Kalmar",
      "Mönsterås",
      "Mörbylånga",
      "Nybro",
      "Oskarshamn",
      "Torsås",
      "Vimmerby",
      "Västervik"
    ]
  },
  {
    "name": "Kronobergs län",
    "cities": [
      "Alvesta",
      "Lessebo",
      "Ljungby",
      "Markaryd",
      "Tingsryd",
      "Uppvidinge",
      "Växjö",
      "Älmhult"
    ]
  },
  {
    "name": "Norrbottens län",
    "cities": [
      "Arjeplog",
      "Arvidsjaur",
      "Boden",
      "Gällivare",
      "Haparanda",
      "Jokkmokk",
      "Kalix",
      "Kiruna",
      "Luleå",
      "Pajala",
      "Piteå",
      "Älvsbyn",
      "Överkalix",
      "Övertorneå"
    ]
  },
  {
    "name": "Skåne län",
    "cities": [
      "Bjuv",
      "Bromölla",
      "Burlöv",
      "Båstad",
      "Eslöv",
      "Helsingborg",
      "Hässleholm",
      "Höganäs",
      "Hörby",
      "Höör",
      "Klippan",
      "Kristianstad",
      "Kävlinge",
      "Landskrona",
      "Lomma",
      "Lund",
      "Malmö",
      "Osby",
      "Perstorp",
      "Simrishamn",
      "Sjöbo",
      "Skurup",
      "Staffanstorp",
      "Svalöv",
      "Svedala",
      "Tomelilla",
      "Trelleborg",
      "Vellinge",
      "Ystad",
      "Åstorp",
      "Ängelholm",
      "Örkelljunga",
      "Östra Göinge"
    ]
  },
  {
    "name": "Stockholms län",
    "cities": [
      "Botkyrka",
      "Danderyd",
      "Ekerö",
      "Haninge",
      "Huddinge",
      "Järfälla",
      "Lidingö",
      "Nacka",
      "Norrtälje",
      "Nykvarn",
      "Nynäshamn",
      "Salem",
      "Sigtuna",
      "Sollentuna",
      "Solna",
      "Stockholm",
      "Sundbyberg",
      "Södertälje",
      "Tyresö",
      "Täby",
      "Upplands-Bro",
      "Upplands Väsby",
      "Vallentuna",
      "Vaxholm",
      "Värmdö",
      "Österåker"
    ]
  },
  {
    "name": "Södermanlands län",
    "cities": [
      "Eskilstuna",
      "Flen",
      "Gnesta",
      "Katrineholm",
      "Nyköping",
      "Oxelösund",
      "Strängnäs",
      "Trosa",
      "Vingåker"
    ]
  },
  {
    "name": "Uppsala län",
    "cities": [
      "Enköping",
      "Heby",
      "Håbo",
      "Knivsta",
      "Tierp",
      "Uppsala",
      "Älvkarleby",
      "Östhammar"
    ]
  },
  {
    "name": "Värmlands län",
    "cities": [
      "Arvika",
      "Eda",
      "Filipstad",
      "Forshaga",
      "Grums",
      "Hagfors",
      "Hammarö",
      "Karlstad",
      "Kil",
      "Kristinehamn",
      "Munkfors",
      "Storfors",
      "Sunne",
      "Säffle",
      "Torsby",
      "Årjäng"
    ]
  },
  {
    "name": "Västerbottens län",
    "cities": [
      "Bjurholm",
      "Dorotea",
      "Lycksele",
      "Malå",
      "Nordmaling",
      "Norsjö",
      "Robertsfors",
      "Skellefteå",
      "Sorsele",
      "Storuman",
      "Umeå",
      "Vilhelmina",
      "Vindeln",
      "Vännäs",
      "Åsele"
    ]
  },
  {
    "name": "Västernorrlands län",
    "cities": [
      "Härnösand",
      "Kramfors",
      "Sollefteå",
      "Sundsvall",
      "Timrå",
      "Ånge",
      "Örnsköldsvik"
    ]
  },
  {
    "name": "Västmanlands län",
    "cities": [
      "Arboga",
      "Fagersta",
      "Hallstahammar",
      "Kungsör",
      "Köping",
      "Norberg",
      "Sala",
      "Skinnskatteberg",
      "Surahammar",
      "Västerås"
    ]
  },
  {
    "name": "Västra Götalands län",
    "cities": [
      "Ale",
      "Alingsås",
      "Bengtsfors",
      "Bollebygd",
      "Borås",
      "Dals-Ed",
      "Essunga",
      "Falköping",
      "Färgelanda",
      "Grästorp",
      "Gullspång",
      "Göteborg",
      "Götene",
      "Herrljunga",
      "Hjo",
      "Härryda",
      "Karlsborg",
      "Kungälv",
      "Lerum",
      "Lidköping",
      "Lilla Edet",
      "Lysekil",
      "Mariestad",
      "Mark",
      "Mellerud",
      "Munkedal",
      "Mölndal",
      "Orust",
      "Partille",
      "Skara",
      "Skövde",
      "Sotenäs",
      "Stenungsund",
      "Strömstad",
      "Svenljunga",
      "Tanum",
      "Tibro",
      "Tidaholm",
      "Tjörn",
      "Tranemo",
      "Trollhättan",
      "Töreboda",
      "Uddevalla",
      "Ulricehamn",
      "Vara",
      "Vårgårda",
      "Vänersborg",
      "Åmål",
      "Öckerö"
    ]
  },
  {
    "name": "Örebro län",
    "cities": [
      "Askersund",
      "Degerfors",
      "Hallsberg",
      "Hällefors",
      "Karlskoga",
      "Kumla",
      "Laxå",
      "Lekeberg",
      "Lindesberg",
      "Ljusnarsberg",
      "Nora",
      "Örebro"
    ]
  },
  {
    "name": "Östergötlands län",
    "cities": [
      "Boxholm",
      "Finspång",
      "Kinda",
      "Linköping",
      "Mjölby",
      "Motala",
      "Norrköping",
      "Söderköping",
      "Vadstena",
      "Valdemarsvik",
      "Ydre",
      "Åtvidaberg",
      "Ödeshög"
    ]
  }
]

And here's the code used to validate:

export const regions = [
    {
        name: 'Blekinge län',
        Lansnr: '10',
        cities: [
            'Karlshamn',
            'Karlskoga',
            'Olofström',
            'Ronneby',
            'Sölvesborg',
        ],
    },
    {
        name: 'Dalarnas län',
        Lansnr: '20',
        cities: [
            'Avesta',
            'Borlänge',
            'Falun',
            'Gagnef',
            'Hedemora',
            'Leksand',
            'Ludvika',
            'Malung-Sälen',
            'Mora',
            'Orsa',
            'Rättvik',
            'Smedjebacken',
            'Säter',
            'Vansbro',
            'Älvdalen',
        ],
    },
    {
        name: 'Gotlands län',
        Lansnr: '09',
        cities: ['Gotland'],
    },
    {
        name: 'Gävleborgs län',
        Lansnr: '21',
        cities: [
            'Bollnäs',
            'Gävle',
            'Hofors',
            'Hudiksvall',
            'Ljusdal',
            'Nordanstig',
            'Ockelbo',
            'Ovanåker',
            'Sandviken',
            'Söderhamn',
        ],
    },
    {
        name: 'Hallands län',
        Lansnr: '13',
        cities: [
            'Falkenberg',
            'Halmstad',
            'Hylte',
            'Kungsbacka',
            'Laholm',
            'Varberg',
        ],
    },
    {
        name: 'Jämtlands län',
        Lansnr: '23',
        cities: [
            'Berg',
            'Bräcke',
            'Härjedalen',
            'Krokom',
            'Ragunda',
            'Strömsund',
            'Åre',
            'Östersund',
        ],
    },
    {
        name: 'Jönköpings län',
        Lansnr: '06',
        cities: [
            'Aneby',
            'Eksjö',
            'Gislaved',
            'Gnosjö',
            'Habo',
            'Jönköping',
            'Mullsjö',
            'Nässjö',
            'Sävsjö',
            'Tranås',
            'Vaggeryd',
            'Vetlanda',
            'Värnamo',
        ],
    },
    {
        name: 'Kalmar län',
        Lansnr: '08',
        cities: [
            'Borgholm',
            'Emmaboda',
            'Hultsfred',
            'Högsby',
            'Kalmar',
            'Mönsterås',
            'Mörbylånga',
            'Nybro',
            'Oskarshamn',
            'Torsås',
            'Vimmerby',
            'Västerviks',
        ],
    },
    {
        name: 'Kronobergs län',
        Lansnr: '07',
        cities: [
            'Alvesta',
            'Lessebo',
            'Ljungby',
            'Markaryd',
            'Tingsryd',
            'Uppvidinge',
            'Växjö',
            'Älmhult',
        ],
    },
    {
        name: 'Norrbottens län',
        Lansnr: '25',
        cities: [
            'Arjeplog',
            'Arvidsjaur',
            'Boden',
            'Gällivare',
            'Haparanda',
            'Jokkmokk',
            'Kalix',
            'Kiruna',
            'Luleå',
            'Pajala',
            'Piteå',
            'Älvsbyn',
            'Överkalix',
            'Övertorneå',
        ],
    },
    {
        name: 'Skåne län',
        Lansnr: '12',
        cities: [
            'Bjuv',
            'Bromölla',
            'Burlövs',
            'Båstad',
            'Eslöv',
            'Helsingborg',
            'Hässleholm',
            'Höganäs',
            'Hörby',
            'Höör',
            'Klippan',
            'Kristianstad',
            'Kävlinge',
            'Landskrona',
            'Lomma',
            'Lund',
            'Malmö',
            'Osby',
            'Perstorp',
            'Simrishamn',
            'Sjöbo',
            'Skurup',
            'Staffanstorp',
            'Svalövs',
            'Svedala',
            'Tomelilla',
            'Trelleborg',
            'Vellinge',
            'Ystad',
            'Åstorp',
            'Ängelholm',
            'Örkeljunga',
            'Östra Göinge',
        ],
    },
    {
        name: 'Stockholms län',
        Lansnr: '01',
        cities: [
            'Botkyrka',
            'Danderyd',
            'Ekerö',
            'Haninge',
            'Huddinge',
            'Järfälla',
            'Lidingö',
            'Nacka',
            'Norrtälje',
            'Nykvarn',
            'Nynäshamn',
            'Salem',
            'Sigtuna',
            'Sollentuna',
            'Solna',
            'Stockholm',
            'Sundbyberg',
            'Södertälje',
            'Tyresö',
            'Täby',
            'Upplands-Bro',
            'Upplands Väsby',
            'Vallentuna',
            'Vaxholm',
            'Värmdö',
            'Österåker',
        ],
    },
    {
        name: 'Södermanlands län',
        Lansnr: '04',
        cities: [
            'Eskilstuna',
            'Flen',
            'Gnesta',
            'Katrineholm',
            'Nyköping',
            'Oxelösund',
            'Strängnäs',
            'Trosa',
            'Vingåker',
        ],
    },
    {
        name: 'Uppsala län',
        Lansnr: '03',
        cities: [
            'Enköping',
            'Heby',
            'Håbo',
            'Knivsta',
            'Tierp',
            'Uppsala',
            'Älvkarleby',
            'Östhammar',
        ],
    },
    {
        name: 'Värmlands län',
        Lansnr: '17',
        cities: [
            'Arvika',
            'Eda',
            'Filipstad',
            'Forshaga',
            'Grums',
            'Hagfors',
            'Hammarö',
            'Karlstad',
            'Kil',
            'Kristinehamn',
            'Munkfors',
            'Storfors',
            'Sunne',
            'Säffle',
            'Torsby',
            'Årjäng',
        ],
    },
    {
        name: 'Västerbottens län',
        Lansnr: '24',
        cities: [
            'Bjurholm',
            'Dorotea',
            'Lycksele',
            'Malå',
            'Nordmaling',
            'Norsjö',
            'Robertsfors',
            'Skellefteå',
            'Sorsele',
            'Storuman',
            'Umeå',
            'Vilhelmina',
            'Vindeln',
            'Vännäs',
            'Åsele',
        ],
    },
    {
        name: 'Västernorrlands län',
        Lansnr: '22',
        cities: [
            'Härnösand',
            'Kramfors',
            'Sollefteå',
            'Sundsvall',
            'Timrå',
            'Ånge',
            'Örnsköldsvik',
        ],
    },
    {
        name: 'Västmanlands län',
        Lansnr: '19',
        cities: [
            'Arboga',
            'Fagersta',
            'Hallstahammar',
            'Kungsör',
            'Köping',
            'Norberg',
            'Sala',
            'Skinnskatteberg',
            'Surahammar',
            'Västerås',
        ],
    },
    {
        name: 'Västra Götalands län',
        Lansnr: '14',
        cities: [
            'Ale',
            'Alingsås',
            'Bengtsfors',
            'Bollebygd',
            'Borås',
            'Dals-Ed',
            'Essunga',
            'Falköping',
            'Färgelanda',
            'Grästorp',
            'Gullspång',
            'Göteborg',
            'Götene',
            'Herrljunga',
            'Hjo',
            'Härryda',
            'Karlsborg',
            'Kungsälv',
            'Lerum',
            'Lidköping',
            'Lilla Edet',
            'Lysekil',
            'Mariestad',
            'Mark',
            'Melleruds',
            'Munkedal',
            'Mölndal',
            'Orust',
            'Partille',
            'Skara',
            'Skövde',
            'Sotenäs',
            'Stenungsund',
            'Strömstad',
            'Svenljunga',
            'Tanum',
            'Tibro',
            'Tidaholm',
            'Tjörn',
            'Tranemo',
            'Trollhättan',
            'Töreboda',
            'Uddevalla',
            'Ulricehamn',
            'Vara',
            'Vårgårda',
            'Vänersborg',
            'Åmål',
            'Öckerö',
        ],
    },
    {
        name: 'Örebro län',
        Lansnr: '18',
        cities: [
            'Askersunds',
            'Degerfors',
            'Hallsberg',
            'Hällefors',
            'Karlskoga',
            'Kumla',
            'Laxå',
            'Lekeberg',
            'Lindesberg',
            'Ljusnarsberg',
            'Nora',
            'Örebro',
        ],
    },
    {
        name: 'Östergötlands län',
        Lansnr: '05',
        cities: [
            'Boxholm',
            'Finspång',
            'Kinda',
            'Linköping',
            'Mjölby',
            'Motala',
            'Norrköping',
            'Söderköping',
            'Vadstena',
            'Valdemarsvik',
            'Ydre',
            'Åtvidaberg',
            'Ödeshög',
        ],
    },
]

const municipalityNumbersByMunipalityName = {
    'upplands väsby': '0114',
    vallentuna: '0115',
    österåker: '0117',
    värmdö: '0120',
    järfälla: '0123',
    ekerö: '0125',
    huddinge: '0126',
    botkyrka: '0127',
    salem: '0128',
    haninge: '0136',
    tyresö: '0138',
    'upplands-bro': '0139',
    nykvarn: '0140',
    täby: '0160',
    danderyd: '0162',
    sollentuna: '0163',
    stockholm: '0180',
    södertälje: '0181',
    nacka: '0182',
    sundbyberg: '0183',
    solna: '0184',
    lidingö: '0186',
    vaxholm: '0187',
    norrtälje: '0188',
    sigtuna: '0191',
    nynäshamn: '0192',
    håbo: '0305',
    älvkarleby: '0319',
    knivsta: '0330',
    heby: '0331',
    tierp: '0360',
    uppsala: '0380',
    enköping: '0381',
    östhammar: '0382',
    vingåker: '0428',
    gnesta: '0461',
    nyköping: '0480',
    oxelösund: '0481',
    flen: '0482',
    katrineholm: '0483',
    eskilstuna: '0484',
    strängnäs: '0486',
    trosa: '0488',
    ödeshög: '0509',
    ydre: '0512',
    kinda: '0513',
    boxholm: '0560',
    åtvidaberg: '0561',
    finspång: '0562',
    valdemarsvik: '0563',
    linköping: '0580',
    norrköping: '0581',
    söderköping: '0582',
    motala: '0583',
    vadstena: '0584',
    mjölby: '0586',
    aneby: '0604',
    gnosjö: '0617',
    mullsjö: '0642',
    habo: '0643',
    gislaved: '0662',
    vaggeryd: '0665',
    jönköping: '0680',
    nässjö: '0682',
    värnamo: '0683',
    sävsjö: '0684',
    vetlanda: '0685',
    eksjö: '0686',
    tranås: '0687',
    uppvidinge: '0760',
    lessebo: '0761',
    tingsryd: '0763',
    alvesta: '0764',
    älmhult: '0765',
    markaryd: '0767',
    växjö: '0780',
    ljungby: '0781',
    högsby: '0821',
    torsås: '0834',
    mörbylånga: '0840',
    hultsfred: '0860',
    mönsterås: '0861',
    emmaboda: '0862',
    kalmar: '0880',
    nybro: '0881',
    oskarshamn: '0882',
    västervik: '0883',
    vimmerby: '0884',
    borgholm: '0885',
    gotland: '0980',
    olofström: '1060',
    karlskrona: '1080',
    ronneby: '1081',
    karlshamn: '1082',
    sölvesborg: '1083',
    svalöv: '1214',
    staffanstorp: '1230',
    burlöv: '1231',
    vellinge: '1233',
    'östra göinge': '1256',
    örkelljunga: '1257',
    bjuv: '1260',
    kävlinge: '1261',
    lomma: '1262',
    svedala: '1263',
    skurup: '1264',
    sjöbo: '1265',
    hörby: '1266',
    höör: '1267',
    tomelilla: '1270',
    bromölla: '1272',
    osby: '1273',
    perstorp: '1275',
    klippan: '1276',
    åstorp: '1277',
    båstad: '1278',
    malmö: '1280',
    lund: '1281',
    landskrona: '1282',
    helsingborg: '1283',
    höganäs: '1284',
    eslöv: '1285',
    ystad: '1286',
    trelleborg: '1287',
    kristianstad: '1290',
    simrishamn: '1291',
    ängelholm: '1292',
    hässleholm: '1293',
    hylte: '1315',
    halmstad: '1380',
    laholm: '1381',
    falkenberg: '1382',
    varberg: '1383',
    kungsbacka: '1384',
    härryda: '1401',
    partille: '1402',
    öckerö: '1407',
    stenungsund: '1415',
    tjörn: '1419',
    orust: '1421',
    sotenäs: '1427',
    munkedal: '1430',
    tanum: '1435',
    'dals-ed': '1438',
    färgelanda: '1439',
    ale: '1440',
    lerum: '1441',
    vårgårda: '1442',
    bollebygd: '1443',
    grästorp: '1444',
    essunga: '1445',
    karlsborg: '1446',
    gullspång: '1447',
    tranemo: '1452',
    bengtsfors: '1460',
    mellerud: '1461',
    'lilla edet': '1462',
    mark: '1463',
    svenljunga: '1465',
    herrljunga: '1466',
    vara: '1470',
    götene: '1471',
    tibro: '1472',
    töreboda: '1473',
    göteborg: '1480',
    mölndal: '1481',
    kungälv: '1482',
    lysekil: '1484',
    uddevalla: '1485',
    strömstad: '1486',
    vänersborg: '1487',
    trollhättan: '1488',
    alingsås: '1489',
    borås: '1490',
    ulricehamn: '1491',
    åmål: '1492',
    mariestad: '1493',
    lidköping: '1494',
    skara: '1495',
    skövde: '1496',
    hjo: '1497',
    tidaholm: '1498',
    falköping: '1499',
    kil: '1715',
    eda: '1730',
    torsby: '1737',
    storfors: '1760',
    hammarö: '1761',
    munkfors: '1762',
    forshaga: '1763',
    grums: '1764',
    årjäng: '1765',
    sunne: '1766',
    karlstad: '1780',
    kristinehamn: '1781',
    filipstad: '1782',
    hagfors: '1783',
    arvika: '1784',
    säffle: '1785',
    lekeberg: '1814',
    laxå: '1860',
    hallsberg: '1861',
    degerfors: '1862',
    hällefors: '1863',
    ljusnarsberg: '1864',
    örebro: '1880',
    kumla: '1881',
    askersund: '1882',
    karlskoga: '1883',
    nora: '1884',
    lindesberg: '1885',
    skinnskatteberg: '1904',
    surahammar: '1907',
    kungsör: '1960',
    hallstahammar: '1961',
    norberg: '1962',
    västerås: '1980',
    sala: '1981',
    fagersta: '1982',
    köping: '1983',
    arboga: '1984',
    vansbro: '2021',
    'malung-sälen': '2023',
    gagnef: '2026',
    leksand: '2029',
    rättvik: '2031',
    orsa: '2034',
    älvdalen: '2039',
    smedjebacken: '2061',
    mora: '2062',
    falun: '2080',
    borlänge: '2081',
    säter: '2082',
    hedemora: '2083',
    avesta: '2084',
    ludvika: '2085',
    ockelbo: '2101',
    hofors: '2104',
    ovanåker: '2121',
    nordanstig: '2132',
    ljusdal: '2161',
    gävle: '2180',
    sandviken: '2181',
    söderhamn: '2182',
    bollnäs: '2183',
    hudiksvall: '2184',
    ånge: '2260',
    timrå: '2262',
    härnösand: '2280',
    sundsvall: '2281',
    kramfors: '2282',
    sollefteå: '2283',
    örnsköldsvik: '2284',
    ragunda: '2303',
    bräcke: '2305',
    krokom: '2309',
    strömsund: '2313',
    åre: '2321',
    berg: '2326',
    härjedalen: '2361',
    östersund: '2380',
    nordmaling: '2401',
    bjurholm: '2403',
    vindeln: '2404',
    robertsfors: '2409',
    norsjö: '2417',
    malå: '2418',
    storuman: '2421',
    sorsele: '2422',
    dorotea: '2425',
    vännäs: '2460',
    vilhelmina: '2462',
    åsele: '2463',
    umeå: '2480',
    lycksele: '2481',
    skellefteå: '2482',
    arvidsjaur: '2505',
    arjeplog: '2506',
    jokkmokk: '2510',
    överkalix: '2513',
    kalix: '2514',
    övertorneå: '2518',
    pajala: '2521',
    gällivare: '2523',
    älvsbyn: '2560',
    luleå: '2580',
    piteå: '2581',
    boden: '2582',
    haparanda: '2583',
    kiruna: '2584',
    okänt: '0000',
} as const

const updatedRegions = [
    {
        name: 'Blekinge län',
        Lansnr: '10',
        cities: [
            'Karlshamn',
            'Karlskrona',
            'Olofström',
            'Ronneby',
            'Sölvesborg',
        ],
    },
    {
        name: 'Dalarnas län',
        Lansnr: '20',
        cities: [
            'Avesta',
            'Borlänge',
            'Falun',
            'Gagnef',
            'Hedemora',
            'Leksand',
            'Ludvika',
            'Malung-Sälen',
            'Mora',
            'Orsa',
            'Rättvik',
            'Smedjebacken',
            'Säter',
            'Vansbro',
            'Älvdalen',
        ],
    },
    {
        name: 'Gotlands län',
        Lansnr: '09',
        cities: ['Gotland'],
    },
    {
        name: 'Gävleborgs län',
        Lansnr: '21',
        cities: [
            'Bollnäs',
            'Gävle',
            'Hofors',
            'Hudiksvall',
            'Ljusdal',
            'Nordanstig',
            'Ockelbo',
            'Ovanåker',
            'Sandviken',
            'Söderhamn',
        ],
    },
    {
        name: 'Hallands län',
        Lansnr: '13',
        cities: [
            'Falkenberg',
            'Halmstad',
            'Hylte',
            'Kungsbacka',
            'Laholm',
            'Varberg',
        ],
    },
    {
        name: 'Jämtlands län',
        Lansnr: '23',
        cities: [
            'Berg',
            'Bräcke',
            'Härjedalen',
            'Krokom',
            'Ragunda',
            'Strömsund',
            'Åre',
            'Östersund',
        ],
    },
    {
        name: 'Jönköpings län',
        Lansnr: '06',
        cities: [
            'Aneby',
            'Eksjö',
            'Gislaved',
            'Gnosjö',
            'Habo',
            'Jönköping',
            'Mullsjö',
            'Nässjö',
            'Sävsjö',
            'Tranås',
            'Vaggeryd',
            'Vetlanda',
            'Värnamo',
        ],
    },
    {
        name: 'Kalmar län',
        Lansnr: '08',
        cities: [
            'Borgholm',
            'Emmaboda',
            'Hultsfred',
            'Högsby',
            'Kalmar',
            'Mönsterås',
            'Mörbylånga',
            'Nybro',
            'Oskarshamn',
            'Torsås',
            'Vimmerby',
            'Västervik',
        ],
    },
    {
        name: 'Kronobergs län',
        Lansnr: '07',
        cities: [
            'Alvesta',
            'Lessebo',
            'Ljungby',
            'Markaryd',
            'Tingsryd',
            'Uppvidinge',
            'Växjö',
            'Älmhult',
        ],
    },
    {
        name: 'Norrbottens län',
        Lansnr: '25',
        cities: [
            'Arjeplog',
            'Arvidsjaur',
            'Boden',
            'Gällivare',
            'Haparanda',
            'Jokkmokk',
            'Kalix',
            'Kiruna',
            'Luleå',
            'Pajala',
            'Piteå',
            'Älvsbyn',
            'Överkalix',
            'Övertorneå',
        ],
    },
    {
        name: 'Skåne län',
        Lansnr: '12',
        cities: [
            'Bjuv',
            'Bromölla',
            'Burlöv',
            'Båstad',
            'Eslöv',
            'Helsingborg',
            'Hässleholm',
            'Höganäs',
            'Hörby',
            'Höör',
            'Klippan',
            'Kristianstad',
            'Kävlinge',
            'Landskrona',
            'Lomma',
            'Lund',
            'Malmö',
            'Osby',
            'Perstorp',
            'Simrishamn',
            'Sjöbo',
            'Skurup',
            'Staffanstorp',
            'Svalöv',
            'Svedala',
            'Tomelilla',
            'Trelleborg',
            'Vellinge',
            'Ystad',
            'Åstorp',
            'Ängelholm',
            'Örkelljunga',
            'Östra Göinge',
        ],
    },
    {
        name: 'Stockholms län',
        Lansnr: '01',
        cities: [
            'Botkyrka',
            'Danderyd',
            'Ekerö',
            'Haninge',
            'Huddinge',
            'Järfälla',
            'Lidingö',
            'Nacka',
            'Norrtälje',
            'Nykvarn',
            'Nynäshamn',
            'Salem',
            'Sigtuna',
            'Sollentuna',
            'Solna',
            'Stockholm',
            'Sundbyberg',
            'Södertälje',
            'Tyresö',
            'Täby',
            'Upplands-Bro',
            'Upplands Väsby',
            'Vallentuna',
            'Vaxholm',
            'Värmdö',
            'Österåker',
        ],
    },
    {
        name: 'Södermanlands län',
        Lansnr: '04',
        cities: [
            'Eskilstuna',
            'Flen',
            'Gnesta',
            'Katrineholm',
            'Nyköping',
            'Oxelösund',
            'Strängnäs',
            'Trosa',
            'Vingåker',
        ],
    },
    {
        name: 'Uppsala län',
        Lansnr: '03',
        cities: [
            'Enköping',
            'Heby',
            'Håbo',
            'Knivsta',
            'Tierp',
            'Uppsala',
            'Älvkarleby',
            'Östhammar',
        ],
    },
    {
        name: 'Värmlands län',
        Lansnr: '17',
        cities: [
            'Arvika',
            'Eda',
            'Filipstad',
            'Forshaga',
            'Grums',
            'Hagfors',
            'Hammarö',
            'Karlstad',
            'Kil',
            'Kristinehamn',
            'Munkfors',
            'Storfors',
            'Sunne',
            'Säffle',
            'Torsby',
            'Årjäng',
        ],
    },
    {
        name: 'Västerbottens län',
        Lansnr: '24',
        cities: [
            'Bjurholm',
            'Dorotea',
            'Lycksele',
            'Malå',
            'Nordmaling',
            'Norsjö',
            'Robertsfors',
            'Skellefteå',
            'Sorsele',
            'Storuman',
            'Umeå',
            'Vilhelmina',
            'Vindeln',
            'Vännäs',
            'Åsele',
        ],
    },
    {
        name: 'Västernorrlands län',
        Lansnr: '22',
        cities: [
            'Härnösand',
            'Kramfors',
            'Sollefteå',
            'Sundsvall',
            'Timrå',
            'Ånge',
            'Örnsköldsvik',
        ],
    },
    {
        name: 'Västmanlands län',
        Lansnr: '19',
        cities: [
            'Arboga',
            'Fagersta',
            'Hallstahammar',
            'Kungsör',
            'Köping',
            'Norberg',
            'Sala',
            'Skinnskatteberg',
            'Surahammar',
            'Västerås',
        ],
    },
    {
        name: 'Västra Götalands län',
        Lansnr: '14',
        cities: [
            'Ale',
            'Alingsås',
            'Bengtsfors',
            'Bollebygd',
            'Borås',
            'Dals-Ed',
            'Essunga',
            'Falköping',
            'Färgelanda',
            'Grästorp',
            'Gullspång',
            'Göteborg',
            'Götene',
            'Herrljunga',
            'Hjo',
            'Härryda',
            'Karlsborg',
            'Kungälv',
            'Lerum',
            'Lidköping',
            'Lilla Edet',
            'Lysekil',
            'Mariestad',
            'Mark',
            'Mellerud',
            'Munkedal',
            'Mölndal',
            'Orust',
            'Partille',
            'Skara',
            'Skövde',
            'Sotenäs',
            'Stenungsund',
            'Strömstad',
            'Svenljunga',
            'Tanum',
            'Tibro',
            'Tidaholm',
            'Tjörn',
            'Tranemo',
            'Trollhättan',
            'Töreboda',
            'Uddevalla',
            'Ulricehamn',
            'Vara',
            'Vårgårda',
            'Vänersborg',
            'Åmål',
            'Öckerö',
        ],
    },
    {
        name: 'Örebro län',
        Lansnr: '18',
        cities: [
            'Askersund',
            'Degerfors',
            'Hallsberg',
            'Hällefors',
            'Karlskoga',
            'Kumla',
            'Laxå',
            'Lekeberg',
            'Lindesberg',
            'Ljusnarsberg',
            'Nora',
            'Örebro',
        ],
    },
    {
        name: 'Östergötlands län',
        Lansnr: '05',
        cities: [
            'Boxholm',
            'Finspång',
            'Kinda',
            'Linköping',
            'Mjölby',
            'Motala',
            'Norrköping',
            'Söderköping',
            'Vadstena',
            'Valdemarsvik',
            'Ydre',
            'Åtvidaberg',
            'Ödeshög',
        ],
    },
]

const validMunicipalities = new Set(
    Object.keys(municipalityNumbersByMunipalityName),
)

const invalid = new Set()

for (const region of updatedRegions) {
    for (const city of region.cities) {
        const name = city.toLowerCase()
        if (!validMunicipalities.has(name)) {
            console.log(region.name, 'had invalid city', name)
            invalid.add(name)
        }
    }
}

// Ensure only valid municipalities are included in the regions
console.log({ invalid })

const missing = new Set()

validMunicipalities.forEach((validCityName) => {
    if (
        !updatedRegions.some((region) =>
            region.cities.some((city) => city.toLowerCase() === validCityName),
        )
    ) {
        missing.add(validCityName)
    }
})

// Ensure nothing is missing in the regions
console.log({ missing })

// number of municipalities are correct
console.log(
    validMunicipalities.size - 1,
    updatedRegions.map((r) => r.cities.length).reduce((a, b) => a + b, 0),
)

const wrongRegion = new Set()

// Ensure municipalities are in the right region
validMunicipalities.forEach((validCityName) => {
    if (
        !updatedRegions.some((region) =>
            region.cities.some(
                (city) =>
                    city.toLowerCase() === validCityName &&
                    municipalityNumbersByMunipalityName[
                        city.toLowerCase() as keyof typeof municipalityNumbersByMunipalityName
                    ].startsWith(region.Lansnr),
            ),
        )
    ) {
        wrongRegion.add(validCityName)
    }
})

console.log({ wrongRegion })

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment