Skip to content

Instantly share code, notes, and snippets.

@giannispan
giannispan / gist:d2804f8f0b1801de84f4
Created February 1, 2016 17:12
Given an object with an arbitrary number of properties, any number of which may be objects or arrays, replace all values which are strictly equal to the string: "dynamic" with a given string occurring anywhere in that object or a child object or array.
function solution (data, replace) {
//Replace all values of "dynamic" with replace
if (data == null)
return data;
for (var prop in data)
if (data.hasOwnProperty(prop)) {
if (data[prop] == "dynamic")
data[prop] = replace;
}
@giannispan
giannispan / gist:bdaab6e5470f48d77322
Created February 1, 2016 17:13
Tribonacci Sequence
function tribonacci(signature,n){
console.log(signature);
console.log(n);
var i;
var fib = new Array();
if (n == 0) return fib;
if (n > 3) {
fib[0] = signature[0];
fib[1] = signature[1];
@giannispan
giannispan / gist:56c1e3c9cd3ad52b273b
Created February 1, 2016 17:13
Is Integer Array ?
function isIntArray(arr) {
console.log(arr);
if (arr == null) return false;
if (arr.constructor !== Array || arr == null) return false;
if (arr.length < 1) return true;
for (var i = 0; i < arr.length; i++)
if ((arr[i] % 1 != 0)) return false;
else
@giannispan
giannispan / gist:57dc99873ed4eb78d874
Created February 1, 2016 17:14
Triangle number check
function isTriangleNumber(number) {
if (isNaN(number) || number != parseInt(number, 10)) return false;
else if (number == 0 || number == 1) return true;
else
var m = (Math.sqrt(8*number+1) - 1) / 2;
if (m != parseInt(m,10)) return false;
else return true;
}
@giannispan
giannispan / gist:4324800ea0c08be436eb
Created February 1, 2016 17:15
Linked Lists - Length & Count
function Node(data) {
this.data = data;
this.next = null;
}
function length(head) {
if (head == null)
return 0;
else
@giannispan
giannispan / gist:9ba54ca6f57d849ebf80
Created February 1, 2016 17:15
Is a number prime?
function isPrime(num) {
var start = 2;
while (start <= Math.sqrt(num)) {
if (num % start++ < 1) return false;
}
return num > 1;
}
var countBits = function(n) {
var bRep = (n >>> 0).toString(2);
var digits = (bRep).toString(10).split("").map(function(t){return parseInt(t)});
console.log(digits);
var k =0;
for (var i = 0; i < digits.length; i++) {
if (digits[i] == 1) {
k++ ;
}
}
@giannispan
giannispan / gist:20b483cb7c6f6a643fdd
Created February 1, 2016 17:16
Find The Parity Outlier
function findOutlier(integers){
var length = integers.length, i;
var evens = [];
var odds = [];
var k
for (i=0; i<length; i++) {
if (integers[i] % 2 == 0) {
evens.push(integers[i]);
}
if (Math.abs(integers[i] % 2) == 1) {
@giannispan
giannispan / gist:d887ce9a161f59d2f084
Created February 1, 2016 17:16
Write a function that takes in a string of one or more words, and returns the same string, but with all five or more letter words reversed (Just like the name of this Kata). Strings passed in will consist of only letters and spaces. Spaces will be included only when more than one word is present.
function spinWords(str){
var splitWords = str.split(' ');
var length = splitWords.length;
for(var i = 0; i < length; i++)
{
if (splitWords[i].length >= 5 )
{
splitWords[i] = reverseWords(splitWords[i]);
@giannispan
giannispan / gist:e59b72e12c6df94b5044
Created February 1, 2016 17:17
The Collatz Conjecture states that for any natural number n, if n is even, divide it by 2. If n is odd, multiply it by 3 and add 1. If you repeat the process continously for n, n will eventually reach 1.
function collatz(n){
var i = 0, c = [];
c.push(n);
while (c[i] > 1) {
if (c[i] % 2 == 0) {
c.push(c[i] / 2);
}
else if (Math.abs(c[i] % 2) == 1) {
c[i] = (c[i] * 3) + 1;