Skip to content

Instantly share code, notes, and snippets.

View mrKimura's full-sized avatar

Andrei Frantsev mrKimura

View GitHub Profile
const copyTextToClipboard = async (text: string) => {
await navigator.clipboard.writeText(text)
}
const capitalize = (str: string) => str.charAt(0).toUpperCase() + str.slice(1)
const randomNumberInRange = (min: number, max: number) => Math.floor(Math.random() * (max - min + 1)) + min
function createElement(html, className) {
return Object.assign(document.createElement('div', {
className,
innerHtml: html,
}))
}
@mrKimura
mrKimura / pluralize-ru.js
Created November 27, 2020 14:46 — forked from znechai/pluralize-ru.js
JavaScript - Plural forms for russian words
/**
* Plural forms for russian words
* @param {Integer} count quantity for word
* @param {Array} words Array of words. Example: ['депутат', 'депутата', 'депутатов'], ['коментарий', 'коментария', 'комментариев']
* @return {String} Count + plural form for word
*/
function pluralize(count, words) {
var cases = [2, 0, 1, 1, 1, 2];
return count + ' ' + words[ (count % 100 > 4 && count % 100 < 20) ? 2 : cases[ Math.min(count % 10, 5)] ];
}
function readCookies() {
const cookies = document.cookie.replaceAll("; ", "&");
const params = new URLSearchParams(cookies);
return Object.fromEntries(params.entries());
}
@mrKimura
mrKimura / data-attributes.js
Created September 12, 2020 14:51 — forked from puiutucutu/data-attributes.js
Javascript querySelectorAll for data-attributes
document.querySelectorAll('[data-js]')
// will get you all elements with this attribute.
document.querySelectorAll('[data-js="someFooElement"]')
@mrKimura
mrKimura / usage.md
Created September 6, 2020 18:53 — forked from sergeysova/usage.md
Read CSS variable from JS
getVariable(domElement, '--example')
// 'hello'

getVariable(domElement, '--example', (v) => parseInt(v, 36))
// 29234652
@mrKimura
mrKimura / memoed-recursion.js
Created September 5, 2020 11:07
memoed recursion
let cacheMap = new Map()
let fib = n => {
if (cacheMap.has(n)) {
return cacheMap.get(n)
}
let result = n <= 1 ? n : fib(n - 1) + fib(n - 2)
cacheMap.set(n, result)
return result
}
fib(15)
function debounce(func, ms) {
let timeout
return function () {
clearTimeout(timeout)
timeout = setTimeout(() => func.apply(this, arguments), ms)
}
}