Created
December 27, 2021 21:16
-
-
Save PavelPolyakov/0af0c57c734552dec0624a6179543e0a to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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