JS: Несколько полезных функций

Сегодня я решил оставить заметку с несколькими полезными функциями, которые могу пригодится Вам при написании кода на JavaScript.

Первая функция о которой пойдет речь — парсинг значения в bool тип.

/* @param value - что парсим
 * @param undefinedReturn - значение если value не определено  
 * @return true или false
*/
var ParseBoolean = function (value, undefinedReturn) {
  undefinedReturn = undefinedReturn || false;
  if (value == undefined) { return undefinedReturn; }
  else if (value == null) { return false; }
  else if (typeof (value) == 'string') { return value == 'true'; }
  else if (typeof (value) == 'number') { return value > 0; }
  else if (typeof (value) == 'function' || typeof (value) == 'object') { return true; }
  else { return value }
}

Вторая полезная функция парсинг строки в формате год-месяц-день[ час:минута:секунда] в объект date. Почему выбран именно такой формат входной строки? Прост =) На самом деле это один из стандартов, который принимается практически в любом языке программирования.

var ParseDateTime = function (dateString) {
  var parts = dateString.trim().split(' ');
  if (parts.length != 2) {
    if (parts.length == 1) {
      parts[1] = '00:00:00';
    } else {
      return null;
    }
  }
  var date = parts[0].split('-'), time = parts[1].split(':');
  if (date.length != 3 || time.length != 3) {
    return null;
  }
  return new Date(date[0], date[1] - 1, date[2], time[0], time[1], time[2]);
}

Еще одна полезная функция — генерация случайного числа из диапазона a, b.

var Random = function (minimum, maximim) { 
  return Math.floor(Math.random() * (maximim - minimum + 1) + minimum);
}

Так же бывает полезна функция подсчета логарифма числа n по основанию a.

var Log = function (n, a) {
  return Math.log(n) / Math.log(a);
}

А теперь функция обратная ParseDateTime для перевода объекта date в строку.

var ToLength = function (value, neededLength, prefix, suffix) {
  prefix = prefix || false;
  suffix = suffix || false;
  if (!suffix && !prefix) {
    return value;
  }
  value = value.toString();
  while (value.length < neededLength) {
    if (prefix) { value = prefix + value; }
    if (suffix) { value += suffix; }
  }
  return value;
}
var DateFormat = function (date, format) {
  var fullYear = date.getFullYear(),
    year = ToLength(date.getYear(), 2, "0"),
    month = ToLength(date.getMonth() + 1, 2, "0"),
    day = ToLength(date.getDate(), 2, "0"),
    hour = ToLength(date.getHours(), 2, "0"),
    minutes = ToLength(date.getMinutes(), 2, "0"),
    seconds = ToLength(date.getSeconds(), 2, "0");
  switch (format) {
    case 'yyyy-MM-dd':
      return fullYear + "-" + month + "-" + day;
    case 'yyyy-MM-dd HH:mm:ss':
    default:
      return fullYear + "-" + month + "-" + day + " " + hour + ":" + minutes + ":" + seconds;
  }
}
Запись опубликована в рубрике JavaScript с метками , , , , , , , , , , . Добавьте в закладки постоянную ссылку.