Генерация случайных фиктивных данных с указанием c временного диапазона с использованием javascript - PullRequest
0 голосов
/ 27 мая 2020

Я хотел сгенерировать фиктивные данные со структурой ниже.

Условия,

Время начала и время окончания должны быть 30 минут или 1 час.

2- 3 макета за один день с разными временными интервалами

  [{
    Id: 1,
    Subject: 'Bob',
    StartTime: new Date(2020, 6, 11, 9, 30),
    EndTime: new Date(2020, 6, 11, 11, 0),
    CategoryColor: '#1aaa55'
  }]

Ниже приведен код, который я написал для генерации своих фиктивных данных,

Но я не уверен, как сгенерировать журнал данных c. Пожалуйста, помогите

function random() {
  for (let index = 0; index <= 100; index++) {
    let x = {
      Id: getRandomInt(1, 1000),
      Subject: generateName(),
      StartTime: new Date(2020, 6, 11, 9, 30),
      EndTime: new Date(2020, 6, 11, 11, 0),
      CategoryColor: getRandomColor()
    }
    data.push(x);
  }
}

1 Ответ

0 голосов
/ 27 мая 2020

Вы можете использовать this для генератора случайных имен. Для генератора случайных чисел вы можете использовать Math.random() (который всегда возвращает число от 0 до 1) в сочетании с Math.floor(). Например:

Math.floor(Math.random() * 101);  // returns a random integer from 0 to 100

Для генерации даты см. этот ответ

Если я включу интервал, он должен выглядеть так:

let generated_data = []; // this will be the final data
let colors = ["Blue", "Red", "Green"]; // define all the colors you need


function getRandomInt(min, max) { // generate random number
    return Math.floor(Math.random() * (max - min)) + min;
}

function capFirst(string) { // make the first letter capital letter
    return string.charAt(0).toUpperCase() + string.slice(1);
}


function generateName(){ //generates random Name
    var name1 = ["abandoned","able","absolute","adorable"]; // you can add more elements in this list, if you want a wider choice
    var name2 = ["people","history","way","art","world"]; // you can add more elements in this list, if you want a wider choice
    var name = capFirst(name1[getRandomInt(0, name1.length)]) + ' ' + capFirst(name2[getRandomInt(0, name2.length + 1)]);
    return name;
}


function randomDate(date1, date2){ // generates random date
    var date1 = date1 || '01-01-1970'
    var date2 = date2 || new Date().toLocaleDateString()
    date1 = new Date(date1).getTime()
    date2 = new Date(date2).getTime()
    if( date1>date2){
            return new Date(getRandomInt(date2,date1)).toLocaleDateString()   
    } else{
        return new Date(getRandomInt(date1, date2)).toLocaleDateString()  
    }
}

function generateRandomObject() { // adds a random object in the objects list
    let obj = {
        Id: getRandomInt(1, 1000),
        Subject: generateName(),
        StartTime: randomDate('01/01/2000', '01/01/2020'),
        EndTime: randomDate('01/01/2000', '01/01/2020'),
        CategoryColor: colors[getRandomInt(0, colors.length)]
    }
    generated_data.push(obj);
}


setInterval(generateRandomObject, 30 * 60 * 1000); // sets an interval of 30 mins in which the function  will be executed
...