Как создать массив последних нескольких часов в ReactJS? - PullRequest
0 голосов
/ 08 мая 2019

Мне нужен массив за последние 12 часов в моем приложении реакции, но у меня пока только 2, и я делаю это самым утомительным способом.

Это мой текущий код, который работает:

class Example extends Component {
  constructor() {
    super();
    this.now = new Date();
    this.hrAgo = new Date(this.now-3600000).toISOString();
    this.twoHrsAgo = new Date(this.now-2*3600000).toISOString();
    this.state = {
      timeData: [this.twoHrsAgo,this.hrAgo,this.now.toISOString()]
    }
  }
  componentDidMount() {
    console.log("timeData: ",this.state.timeData);
  };
/// other function below

, который отображает что-то вроде этого в моей консоли:

["2019-05-08T06:19:41.744Z", "2019-05-08T07:19:41.744Z", "2019-05-08T08:19:41.744Z"]

Как мне получить последние 12 часов лучше?

Ответы [ 2 ]

0 голосов
/ 08 мая 2019

Вы можете использовать карту для создания массива.new Array (12) создает пустой объект и заполняет его пустой строкой.

const now = new Date();
const hourArray = new Array(12).fill("").map((v, i) => (new Date(now - 3600000*i)).toISOStrting())
0 голосов
/ 08 мая 2019

используйте массив и попробуйте нажать как:

constructor() {
    super();
    this.now = new Date();
    let testArr= [];
    for(let i=0;i<12;i++){
    testArr.push(new Date(this.now-i*3600000).toISOString());
    }
    this.state = {
      timeData: testArr
    }
  }
  componentDidMount() {
    console.log("timeData: ",this.state.timeData);
  }

Пример скрипта: Ссылка Fiddle

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...