Skip to content

Instantly share code, notes, and snippets.

@erratir
erratir / getRandomElement.js
Last active April 27, 2024 03:29
Функция, возвращающая случайный элемемент массива
/**
* Функция, возвращающая случайный элемемент массива
* https://learn.javascript.ru/array
* @param {array} array
* @return {*}
*/
function getRandomElement(array) {
let randomIndex = Math.floor(Math.random() * array.length);
return array[randomIndex];
}
@erratir
erratir / getRandomInRange.js
Last active April 27, 2024 03:29
Функция возвращает случайное целое число между min и max, включая min, max как возможные значения
/**
* Функция возвращает случайное целое число между min и max, включая min, max как возможные значения
* https://learn.javascript.ru/task/random-int-min-max
* @param {number} min
* @param {number} max
* @return {number}
*/
function getRandomInRange(min, max) {
let rand = min + Math.random() * (max + 1 - min);
rand = Math.floor(rand);
@erratir
erratir / shuffle.js
Last active April 6, 2019 11:56
Функция возвращает массив со случайно перемешанными элементами
/**
* Функция возвращает массив со случайно перемешанными элементами
* https://habr.com/ru/post/358094/
* @param {array} arr
* @return {array}
*/
function shuffle(arr){
let j, temp;
for(let i = arr.length - 1; i > 0; i--){
j = Math.floor(Math.random()*(i + 1));
@erratir
erratir / returnUniqueArray.js
Last active April 27, 2024 03:29
Функция возвращает массив с уникальными элементами
/**
* Функция возвращает массив с уникальными элементами
* Только в ES6 https://webformyself.com/kak-proizvesti-udalenie-dublej-massiva-v-es6/
* @param {array} arr
* @return {any[]}
*/
function returnUniqueArray(arr) {
return Array.from(new Set(arr));
}
@erratir
erratir / debounce.html
Last active April 27, 2024 03:28
debounce - `Устранение дребезга`
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<button>
Click me! → And see console!
</button>
@erratir
erratir / utils.js
Created August 2, 2019 00:21
Возвращает ключ объекта по его значению.
/**
* Возвращает ключ объекта по его значению. Нет функционала в js ?
* Вернет только первый ключ, если одинаковых значений несколько?
* @param {object} obj
* @param {any} value
* @return {string | undefined}
*/
const getKeyByValue = (obj, value) =>
Object.keys(obj).find((key) => obj[key] === value);
@erratir
erratir / utils.js
Created August 2, 2019 15:11
Вызывает переданную ей функцюи с задержкой
/**
* Вызывает переданную ей функцюи с задержкой
* https://learn.javascript.ru/task/delay
* @param f
* @param ms
* @return {Function}
*/
export const delay = function (f, ms) {
return function () {
@erratir
erratir / utils.js
Last active August 3, 2019 14:20
Запускать функцию с рендомным интервалом, в заданном диапазоне
/**
* Запускать функцию с рендомным интервалом, в заданном диапазоне
* https://stackoverflow.com/questions/34656758/javascript-setinterval-with-random-time?rq=1
*/
function myFunction() {
const min = 5;
const max = 10;
let rand = Math.floor(Math.random() * (max - min + 1) + min); // Generate Random number between 5 - 10
alert(`Wait for ` + rand + ` seconds`);
setTimeout(myFunction, rand * 1000);
@erratir
erratir / utils.js
Created August 2, 2019 15:34
* Запускать функцию с рендомным интервалом, в заданном диапазоне - упрощенный вариант
/**
* Запускать функцию с рендомным интервалом, в заданном диапазоне - упрощенный вариант
* https://stackoverflow.com/questions/34656758/javascript-setinterval-with-random-time?rq=1
*/
function myFunction() {
alert(`oo`);
setTimeout(myFunction, Math.random() * 5000);
}
myFunction();
@erratir
erratir / delay.js
Created August 2, 2019 15:50 — forked from eteeselink/delay.js
ES7 async/await version of setTimeout
const delay = ms => new Promise(resolve => setTimeout(resolve, ms));
async function something() {
console.log("this might take some time....");
await delay(5000);
console.log("done!")
}
something();