Skip to content

Instantly share code, notes, and snippets.

View aire-con-gas's full-sized avatar

Dave Hong aire-con-gas

View GitHub Profile
@aire-con-gas
aire-con-gas / flatten.js
Created June 15, 2018 05:30
Flatten nested object
function flatten(obj, key_id = '') {
let newObj = {};
const keyPrefix = key_id + (key_id !== '' ? '.' : '');
for(let key in obj) {
if (typeof obj[key] === 'object') {
newObj = Object.assign({}, newObj, flatten(obj[key], key));
} else {
newObj[keyPrefix + key] = obj[key];
}
var myWordMap = {};
function generateWordMap(arg) {
// var wordMap = {};
var blacklistedWords = ['after', 'the', 'and', 'then'];
var wordArr = arg.replace(/[.,:]/g, '').split(' ');
var word;
for(var i = 0, il = wordArr.length; i < il; i++) {
word = wordArr[i].toLowerCase();
if (!blacklistedWords.includes(word)) {
case authActions.AuthActionTypes.RehydrateAuthState: {
let isLogged = false;
const role = localStorage.getItem('role') || null;
const token = localStorage.getItem('access_token');
const expires = parseInt(localStorage.getItem('expires'), 10);
const now = Date.now();
if ((now < expires) && token && role) {
isLogged = true;
}
function reverseWords(messageChars) {
var word = '';
var wordStack = [];
var results = [];
for (var i = 0, il = messageChars.length; i < il; i++) {
if (messageChars[i] !== ' ') {
word += messageChars[i];
}
if (messageChars[i] === ' ' || i === il - 1) {
wordStack.push(word);
@aire-con-gas
aire-con-gas / karatsuba.js
Last active January 25, 2018 19:13
karatsuba
const karatsuba = (x, y) => {
const n = Math.max(x.toString().length, y.toString().length);
if(n === 1) {
return x * y;
}
let tenpowhalfn = Math.pow(10, parseInt(n / 2));
let tenpown = Math.pow(10, 2 * parseInt(n / 2));
@aire-con-gas
aire-con-gas / regexMatching.js
Created December 25, 2017 05:45
regexMatching
function isMatch(text, pattern) {
var truthTable = [];
var textArr = text.split('');
var patternArr = pattern.split('');
function initRowArray() {
var newArr = [];
for(var i = 0; i <= patternArr.length + 1; i++) {
newArr[i] = null;
@aire-con-gas
aire-con-gas / index.html
Created December 23, 2017 05:19
hammingWeight
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width">
<title>JS Bin</title>
</head>
<body>
<script id="jsbin-javascript">
/**
Given inputs that represent overlapping times such as
[[6, 10], [7, 11], [8, 10], [11, 14], [12, 14], [15, 16]]
where each pair represents [startTime, endTime]
return an array that groups each time pair into an array of overlapping
groups as such:
[
[
[6, 10],
[7, 11],
<nav>
<ul class="parentMenu">
<li class="menuItem">
<span class='menuText'>Who</span>
<ul class='submenu hidden'>
<li>Foo 1</li>
<li>Foo 1</li>
</ul>
</li>
<li class="menuItem">
const largestRunningSum = (inputArr = []) => {
let runningSum = 0;
let maxSum = 0;
inputArr.forEach(item => {
runningSum += item;
if (runningSum > 0 && runningSum > maxSum) {
maxSum = runningSum;
} else if (runningSum < 0) {