Показать сообщение отдельно
  #4 (permalink)  
Старый 09.06.2023, 14:27
Новичок на форуме
Отправить личное сообщение для MANDOSAN Посмотреть профиль Найти все сообщения от MANDOSAN
 
Регистрация: 09.06.2023
Сообщений: 2

const mon = Math.floor(Math.random() * 3);
const personGenerator = {
    surnameJson: `{  
        "count": 15,
        "list": {
            "id_1": "Иванов",
            "id_2": "Смирнов",
            "id_3": "Кузнецов",
            "id_4": "Васильев",
            "id_5": "Петров",
            "id_6": "Михайлов",
            "id_7": "Новиков",
            "id_8": "Федоров",
            "id_9": "Кравцов",
            "id_10": "Николаев",
            "id_11": "Семёнов",
            "id_12": "Славин",
            "id_13": "Степанов",
            "id_14": "Павлов",
            "id_15": "Александров",
            "id_16": "Морозов"
        }
    }`,
    firstNameMaleJson: `{
        "count": 10,
        "list": {     
            "id_1": "Александр",
            "id_2": "Максим",
            "id_3": "Иван",
            "id_4": "Артем",
            "id_5": "Дмитрий",
            "id_6": "Никита",
            "id_7": "Михаил",
            "id_8": "Даниил",
            "id_9": "Егор",
            "id_10": "Андрей",
            "id_11": "Марат"
        }
    }`,
    firstNameFemaleJson: `{
        "count": 10,
        "list": {     
            "id_1": "Мария",
            "id_2": "Анна",
            "id_3": "Полина",
            "id_4": "Елена",
            "id_5": "Наталья",
            "id_6": "Ольга",
            "id_7": "Светлана",
            "id_8": "Юлия",
            "id_9": "Людмила",
            "id_10": "Татьяна",
            "id_11": "Оксана"
        }
    }`,
    professionMaleJson: `{
        "count": 10,
        "list": {
            "id_1": "Сантехник",
            "id_2": "Пожарный",
            "id_3": "Полицейский",
            "id_4": "Военный",
            "id_5": "Строитель",
            "id_6": "Инженер",
            "id_7": "Режисер",
            "id_8": "Летчик",
            "id_9": "Электрик",
            "id_10": "Программист"
        }    
    }`,
    professionFemaleJson: `{
        "count": 10,
        "list": {
            "id_1": "Медсестра",
            "id_2": "Няня",
            "id_3": "Учительница",
            "id_4": "Бухгалтер",
            "id_5": "Парикмахер",
            "id_6": "Косметолог",
            "id_7": "Визажист",
            "id_8": "Дизайнер",
            "id_9": "Актриса",
            "id_10": "SMM – менеджер"
        }
    }`,
    

    GENDER_MALE: 'Мужчина',
    GENDER_FEMALE: 'Женщина',

    randomGender: function () {
    return Math.floor (Math.random()*2) == 1 ? this.GENDER_MALE : this.GENDER_FEMALE;
    },

    randomIntNumber: (max = 1, min = 0) => Math.floor(Math.random() * (max - min + 1) + min),

    randomValue: function (json) {
        const obj = JSON.parse(json);
        const prop = `id_${this.randomIntNumber(obj.count, 1)}`;  // this = personGenerator
        return obj.list[prop];
    },

    randomFirstName: function() { 
        if (this.person.gender == this.GENDER_MALE) {
            return this.randomValue(this.firstNameMaleJson);
        } else {
            return this.randomValue(this.firstNameFemaleJson);
        }
    },
     randomSurname: function() {
       if (this.person.gender == this.GENDER_MALE) {
        return this.randomValue(this.surnameJson);
       } else {
        return this.randomValue(this.surnameJson) + "a";
       }
    },
    randomBirthYear: function (min,max) {
        min = 1950;
        max = 2000; 
        return Math.floor(Math.random() * (max - min + 1)) + min;
    }, 

    randomProfession: function () {
        if (this.person.gender == this.GENDER_MALE) {
            return this.randomValue(this.professionMaleJson);
        } else { 
           return this.randomValue(this.professionFemaleJson); 
        } 
    },
    randomPatronymic: function() { 
         
    }},
    randomMonth31: function randomMonth() { 
        let months = [`января`, `марта`, `мая`,	`июля`,	`августа`, `октября`, `декабря`];
        let month = months[Math.floor(Math.random() * 7)];
        return month;
    },
    
    randomMonth30: function randomMonth() { 
        let months = [`апреля`, `июня`, `сентября`, `ноября`];
        let month = months[Math.floor(Math.random() * 4)];
        return month;
    },

    randomMonthFeb28: function randomMonth() { 
		let month = `февраля`
		return month;
	},


    getPerson: function () {
        this.person = {};
        this.person.gender = this.randomGender();
        this.person.surname = this.randomSurname();
        this.person.firstName = this.randomFirstName();
        this.person.birthYear = this.randomBirthYear();
        this.person.profession = this.randomProfession();
        this.person.patronymic = this.randomPatronymic();
        if (mon === 0) {
            this.person.month = this.randomMonth31();
            this.person.day = this.randomIntNumber(1, 31); 
        } else if (mon === 1) {
            this.person.month = this.randomMonth30();
            this.person.day = this.randomIntNumber(1, 30); 
        } else if (mon === 2) {
            this.person.month = this.randomMonthFeb28();
            this.person.day = this.randomIntNumber(1, 28); 
        }
        return this.person;
    
    }
};


Вот весь код, мне нужно что в randomPatronymic генерировались отчества рандомно, плюс минус похожее на то что сверху.
Ответить с цитированием