Skip to content

Instantly share code, notes, and snippets.

View ihorkatkov's full-sized avatar

Ihor Katkov ihorkatkov

View GitHub Profile
@ihorkatkov
ihorkatkov / makeBuffer.js
Last active August 29, 2015 14:25
Функция – строковый буфер
/**
* Задача — реализовать строковый буфер на функциях в JavaScript, со следующим синтаксисом:
Создание объекта: var buffer = makeBuffer();.
Вызов makeBuffer должен возвращать такую функцию buffer, которая при вызове buffer(value) добавляет значение в некоторое
внутреннее хранилище, а при вызове без аргументов buffer() — возвращает его.
* @example http://plnkr.co/edit/aOwEwSKX2fpwURBVmOqN?p=preview
* */
function makeBuffer() {
var text = '';
var buffer = function(value) {
@ihorkatkov
ihorkatkov / getLastDayOfMonth.js
Created July 25, 2015 11:26
getLastDayOfMonth(year, month) - возвращает последний день месяца
function getLastDayOfMonth(year, month) {
var currentMounth = new Date(year, month);
var nextMounth = new Date(year, month + 1);
var result = (nextMounth - currentMounth)/86400000;
return result;
}
/*
Лучшее решение
function getLastDayOfMonth(year, month) {
@ihorkatkov
ihorkatkov / getDateAgo.js
Created July 25, 2015 11:13
[JS] getDateAgo(date, days) - возвращает число, которое было days дней назад от даты date.
function getDateAgo(date, days) {
var newDate = new Date(date);
newDate.setDate(newDate.getDate() - days)
return newDate.getDate();
}
@ihorkatkov
ihorkatkov / getWeekDay.js
Created July 25, 2015 10:55
[JS ]Функцию getWeekDay(date), выводит текущий день недели в коротком формате 'пн', 'вт', … 'вс'.
function getWeekDay(date) {
var days = ['вс', 'пн', 'вт', 'ср', 'чт', 'пт', 'сб'];
var result;
result = days[date.getDay()];
return result;
}
@ihorkatkov
ihorkatkov / camalize.js
Created July 24, 2015 12:46
[js] Camelize. Преобразует строки вида «my-short-string» в «myShortString».
function camelize(str) {
var arr = str.split('-');
for (var i = 1; i < arr.length; i++) {
arr[i]= arr[i][0].toUpperCase() + arr[i].slice(1);
}
str = arr.join('');
return str;
}
@ihorkatkov
ihorkatkov / erastofen.js
Created July 23, 2015 14:01
[JS] Реализация древнего алгоритма Эрастофена
function eratosfen(maxNubm) {
var arr = [];
var p = 2;
//Создаем массив заданной длины
for (var i = 2; i < maxNubm; i++) {
arr[i] = true
}
while (p * p < maxNubm) {
// Производим "зачеркивание" чисел по "p"
@ihorkatkov
ihorkatkov / filterRange.js
Created July 23, 2015 13:05
[JS] Фильтр диапазона. Функция filterRange(arr, a, b), принимает массив чисел arr и возвращает новый массив, который содержит только числа из arr из диапазона от a до b. То есть, проверка имеет вид a ≤ arr[i] ≤ b.
function filterRange(arr, a, b) {
var i = 0;
var result = [];
for (i = 0; i<arr.length; i++) {
if (arr[i] >= a && arr[i] <= b) {
result.push(arr[i]);
}
}
return result;
@ihorkatkov
ihorkatkov / findInArr.js
Created July 23, 2015 12:41
[JS] Поиск в массиве
function find(arr, value) {
var i;
var searchFalse = -1;
for (i = 0; i<arr.length; i++) {
if (arr[i] === value) {
return i;
}
}
return searchFalse;
@ihorkatkov
ihorkatkov / showRnd.js
Created July 23, 2015 11:52
[JS] Получение случайного значения из массива
function showRnd(arr) {
var min = 0;
var max = arr.length - 1;
var rand = min + Math.floor(Math.random() * (max + 1 - min));
return arr[rand];
}
@ihorkatkov
ihorkatkov / isEmpty.js
Created July 23, 2015 10:22
[JS] Функция, которая определяет пуст ли объект. Возвращает true, если в объекте нет свойств и false — если хоть одно свойство есть.
function isEmpty(obj) {
var counter = 0;
for (var key in obj) {
counter++;
}
if (counter == 0) {
return true;
}
else {
return false;