Skip to content

Instantly share code, notes, and snippets.

View Otto-Vector's full-sized avatar
🧧
Angularity

Otto Vector Otto-Vector

🧧
Angularity
View GitHub Profile
@Otto-Vector
Otto-Vector / trueOf.js
Last active May 13, 2021 06:09
trueOf
//проверка на присутствие числа в аргументе
//если хоть один аргумент в массиве совпадает с числом, возвращает true
Number.prototype.trueOf = function(...props) {
return props.includes(this)
}
@Otto-Vector
Otto-Vector / delAtIdxFromStr.js
Created April 2, 2021 15:38
delAtIdxFromStr
//Удалить из строки по индексам
let delAtIdx= (s,i) => s.slice(0,i)+s.slice(i+1)
//версия прототипа
String.prototype.delAtIdx = function (from, to) {
if (!to) to = from
to = Math.max(from,to)
from = Math.min(from,to)
return this.slice(0,from)+this.slice(to+1)
}
@Otto-Vector
Otto-Vector / onWheel.js
Created June 18, 2021 18:30
onMouseWheel
//отслеживание прокрутки
function wheelListener (elem, func) {
if (elem.addEventListener) {
if ('onwheel' in document) {
// IE9+, FF17+
elem.addEventListener("wheel", func);
} else if ('onmousewheel' in document) {
// устаревший вариант события
elem.addEventListener("mousewheel", func);
} else {
@Otto-Vector
Otto-Vector / randMinMax.js
Last active May 27, 2022 08:37
randMinMax
const randMinMax = (min, max) => Math.floor(Math.random() * (max - min + 1)) + min
@Otto-Vector
Otto-Vector / parserStringArrayToObj.js
Last active November 21, 2021 20:51
errorParserStringsArrayToObject
const errorParser = errorStringArray => {
// c сервера приходят ошибки в таком формате
// errorStringArray = [
// "The AboutMe field is required. (AboutMe)",
// "Invalid url format (Contacts->Twitter)",
// "Invalid url format (Contacts->Youtube)",
// "Invalid url format (Contacts->Vk)"
// ]
//убираем первую заглавную букву из названий будущих полей переменных
@Otto-Vector
Otto-Vector / randomDifferentIntegersArrayCreator.js
Last active January 28, 2022 23:10
randomDifferentIntegersArrayCreator
// возвращает массив из необходимого числа элементов needArraySize
// рандомных /НЕ ОДИНАКОВЫХ/ целых чисел (from 0 to realArraySize)
// к которому можно потом "замапится" для перемешивания значений искомого массива, например:
// randomDifferentIntegersArrayCreator(array.length)(from 1 to array.length).map(el=>array[el])
const randomDifferentIntegersArrayCreator = (realArraySize = 1) =>
(needArraySize = realArraySize) => {
const justArray = (a, b = []) => { while (a--) b[a] = a; return b }
let arrayOfNumbers = justArray(realArraySize),
@Otto-Vector
Otto-Vector / filterObjectKeys.js
Last active January 9, 2022 17:15
create new object from filtered keys
// создаёт новый объект из старого после обработки значений ключа
const query = Object.fromEntries( Object
.entries( {
page: 77, //этот удалится при значении page: 1
term: '',
friend: null,
extra: 'Этот ключ не удалится',
} )
// чистим дефолтные значения
.filter( n => n[1] !== null )
@Otto-Vector
Otto-Vector / removeAllHTMLTags.js
Last active January 28, 2022 23:12
removeAllHTMLTags
const removeAllHTMLTags = (text) =>
text.replace(/<.+?>/g, '').replace(/&nbsp;/ig, '')
@Otto-Vector
Otto-Vector / FibboSplit.vba
Last active April 10, 2022 13:38
VBA Fibonacci Split
Function FIBONACCI(number)
Summ = Summ Mod 9
If Summ = 0 Then
FIBONACCI = 9
Else
FIBONACCI = Summ
End If
End Function
@Otto-Vector
Otto-Vector / ExtractPromise.ts
Created April 10, 2022 15:32
TS Extract Promise Arguments
type Foo = Promise<{a: number}>
type ExtractPromiseArg<X> = X extends Promise<infer T> ? T : never
type FooArg = ExtractPromiseArg<Foo>