Skip to content

Instantly share code, notes, and snippets.

@PavelPolyakov
Created December 27, 2021 21:16
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save PavelPolyakov/0af0c57c734552dec0624a6179543e0a to your computer and use it in GitHub Desktop.
Save PavelPolyakov/0af0c57c734552dec0624a6179543e0a to your computer and use it in GitHub Desktop.
const fs = require("fs");
const _ = require("lodash");
const names = fs.readFileSync("./names", "utf-8").split("\n");
let count = [];
function normalizeName(incoming) {
const incomingToNormalized = {
Sergey: "Сергей",
Dmitry: "Дмитрий",
Ivan: "Иван",
Pavel: "Павел",
Alex: "Александр",
Andrey: "Андрей",
Roman: "Роман",
Oleg: "Олег",
Igor: "Игорь",
Alexander: "Александр",
Artem: "Артем",
Nikita: "Никита",
Eugene: "Евгений",
Alexey: "Алексей",
Ilya: "Илья",
Aleksandr: "Александр",
Konstantin: "Константин",
Anton: "Антон",
Mikhail: "Михаил",
Vladimir: "Владимир",
Anna: "Анна",
Vlad: "Владислав",
Serhii: "Сергей",
Dmytro: "Дмитрий",
Ruslan: "Руслан",
Maxim: "Максим",
Yuriy: "Юрий",
Denis: "Денис",
Max: "Максим",
Alexandr: "Александр",
Oleksandr: "Александр",
Vitalii: "Виталий",
Volodymyr: "Владимир",
Olga: "Ольга",
Natalia: "Наталья",
Vadim: "Вадим",
Evgeniy: "Евгений",
Vladislav: "Владислав",
Yaroslav: "Ярослав",
Kirill: "Кирилл",
Denys: "Денис",
Evgeny: "Евгений",
Daria: "Дарья",
Victor: "Виктор",
Andrew: "Андрей",
Dmitriy: "Дмитрий",
Sergei: "Сергей",
Andrii: "Андрея",
Egor: "Егор",
Vitaliy: "Виталий",
Andrei: "Андрей",
Yurii: "Юрий",
Dima: "Дмитрий",
Gleb: "Глеб",
Elena: "Елена",
Bohdan: "Богдан",
Michael: "Михаил",
Taras: "Тарас",
Oleh: "Олег",
Peter: "Питер",
Viktor: "Виктор",
Dmitrii: "Дмитрий",
Vladyslav: "Владислав",
Kostya: "Константин",
Olena: "Елена",
Oleksii: "Алексей",
Nick: "Ник",
Rustam: "Рустам",
Aleksey: "Алексей",
Sergii: "Сергей",
Mike: "Михаил",
Maksym: "Максим",
Anastasia: "Анастасия",
Irina: "Ирина",
Vyacheslav: "Вячеслав",
Yulia: "Юлия",
Vadym: "Вадим",
Yevhenii: "Евгений",
Vitaly: "Виталий",
Boris: "Борис",
Julia: "Юлия",
Mykola: "Михаил",
Kate: "Екатерина",
Tim: "Тим",
Eugen: "Евгений",
Nik: "Николай",
Olya: "Ольга",
Макс: "Максим",
Artur: "Артур",
Bogdan: "Богдан",
Alexandra: "Александра",
George: "Георгий",
Stas: "Станислав",
Oksana: "Оксана",
Olha: "Ольга",
Tatiana: "Татьяна",
Vasiliy: "Василий",
Anastasiia: "Анастасия",
Galina: "Галина",
Yana: "Яна",
Ira: "Ирина",
};
return incomingToNormalized[incoming]
? incomingToNormalized[incoming]
: incoming;
}
for (let i = 0; i < names.length; i++) {
const parts = names[i].split(" ");
const name = normalizeName(parts[0]);
if (!_.find(count, (r) => r.name == name)) {
count.push({ name: name, count: 0 });
}
const record = _.find(count, (r) => r.name == name);
record.count += 1;
}
console.log(count.length);
count = _.sortBy(count, (c) => c.count).reverse();
fs.writeFileSync("./output", JSON.stringify(count, null, 2));
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment