Skip to content

Instantly share code, notes, and snippets.

View tkheyfets's full-sized avatar
🥴

Timur Kheyfets tkheyfets

🥴
View GitHub Profile
const remove = (index, array) =>
[...array.slice(0, index),
...array.slice(index + 1, array.length)];
const sortedUnion = (a, b) => {
const c = {};
[...a, ...b].forEach(i => c[i] = i);
return Object.keys(c);
};
const insert = (item, index, array) =>
[...array.slice(0, index),
...item,
...array.slice(index, array.length)];
@tkheyfets
tkheyfets / insert.js
Last active April 8, 2016 13:50
Array insert
function insert(item, index, array) {
array.splice(index, 0, item);
return array;
}
@tkheyfets
tkheyfets / defer.js
Last active March 23, 2016 18:35
Force code to run in next drawing frame
function defer(fn) { return setTimeout(fn, 0); }
.text-overflowed {
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
@tkheyfets
tkheyfets / chart.html
Last active March 23, 2016 17:53
Interactive chart with html and css http://jsbin.com/zoginax/5
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width" />
<link rel="stylesheet" type="text/css" href="main.css" />
<title>CSS Chart</title>
</head>
<body>
<div class="bars-wrapper">
function get(url) {
return new Promise(function(resolve, reject) {
var xhr = new XMLHttpRequest();
xhr.open('GET', url);
xhr.onload = function() {
if (xhr.status === 200) {
resolve(xhr.response);
} else {
reject(Error(xhr.statusText));
function memoize(fn) {
var slice = Array.prototype.slice,
cache = [];
return function () {
var args = slice.call(arguments),
result = cache[args];
if (!result) {
result = cache[args] = fn.apply(this, args);
}
var uniqID = (function () {
var _uniq = new Date().getTime();
return function () {
return (_uniq++).toString(36);
};
})()