JSFiddle - React, Tailwind, and code Playground

by Ivan Vasilyev

JavaScript

'use strict';

var TITLES = [
  'Большая уютная квартира',
  'Маленькая неуютная квартира',
  'Огромный прекрасный дворец',
  'Маленький ужасный дворец',
  'Красивый гостевой домик',
  'Некрасивый негостеприимный домик',
  'Уютное бунгало далеко от моря',
  'Неуютное бунгало по колено в воде'
];

var TYPES = [
  'palace',
  'flat',
  'house',
  'bungalo'
];

var CHECKINS = [
  '12:00',
  '13:00',
  '14:00'
];

var CHECKOUT = [
  '12:00',
  '13:00',
  '14:00'
];

var FEATURES = [
  'wifi',
  'dishwasher',
  'parking',
  'washer',
  'elevator',
  'conditioner',
];

var PHOTOS = [
  'http://o0.github.io/assets/images/tokyo/hotel1.jpg',
  'http://o0.github.io/assets/images/tokyo/hotel2.jpg',
  'http://o0.github.io/assets/images/tokyo/hotel3.jpg'
];
// Придерживайся одного стиля написания кода. Здесь у тебя объявлена функция, а дальше фукнциональные выражения. ( var func = function() {}) 
// Если это не сделано сознательно для решения какой-то задачи, то лучше все делать в одном стиле.
function getRandomInRange(min, max) {
  return Math.floor(Math.random() * (max - min + 1)) + min;
}

var getRandomElem = function(srcArray) {
  return srcArray[getRandomInRange(0, srcArray.length)];
};

var getAvatar = function(i) {
  return 'img/avatars/user' + (i < 10 ? '0' : '') + (i + 1) + '.png';
};

var getArrForRandomLength = function(srcArray) {
  var randomLength = getRandomInRange(0, srcArray.length);
  return srcArray.slice(0, randomLength);
};

var getArrForOffers = function(numbers) {
  var arrOffers = [];
  for (var i = 0; i < numbers; i++) {
    var location = {
      x: getRandomInRange(300, 900),
      y: getRandomInRange(130, 630)
    };

    var arrObject = {
      author: {
        avatar: getAvatar(i + 1)
      },
      offer: {
        title: getRandomElem(TITLES), // значения не должны повторяться. Сейчас они будут повторяться. И еще фукнция пытается возвращать значение из массива с индексом больше чем длина массива, судя по наличию undefined в результатах вызова...