javascript speed test


given the following function:

  function addInts(anArray){
     var result = 0;
     for (var i = 0; i < anArray.length; ++i){
        if (anArray[i] < 21) {
           result = result + anArray[i];
        } else { 
           result = result + anArray[i] - 21;
     return result;

what would you expect will run faster?

    addInts(sortedArray); #sorted
    addInts(unsortedArray); #unsorted


check your answer


[More programming riddles]

javascript anagram detector


what’s the shortest anagram detector you know how to write, in javascript?

there must be a shorter way to do this. highlight below to see a solution.

var anagramDetector = function (x,y) {
   if (x.length != y.length) return false;
   var alpha_x = x.split("").sort().join("");
   var alpha_y = y.split("").sort().join("");
   for ( j = 0; j<y.length;++j) {
       if (alpha_x[j] != alpha_y[j]) return false;
  return true;

PS: there’s a cool method for solving this for a fixed alphabet, using primes

[More programming riddles]

javascript speed test


if you had to guess, which of the following two bits of javascript code would you say executes faster?

Exhibit A:

var keys = Object.keys(MyObj); //cloning the key array
var length = keys.length;
for (var i = 0; i < length; i++) {
  var val = MyObj[keys[i]];

Exhibit B:

for (var key in MyObj) {
 if (MyObj.hasOwnProperty(key)) { //hasOwnProperty is a native function
  var val = MyObj[key];

Check your answer.

[More programming riddles]




this is what things looked like last year in september, with an up to date version of chrome:

Screen Shot 2013-09-17 at 7.04.32 PM

null vs. undefined (javascript)


how well do you know your “null”s and “undefined”s?

write down what you expect the result of each operation to be. run them in a javascript console (ChromeFirefox/FirebugSafari). compare, verify, contrast, and, for fun, give yourself a score out of “3/4 donut”.

// Equality
null == undefined
null === undefined
!null == !undefined
!null === !undefined

// addition and concatenation
null + ''
undefined + ''
null + 1
undefined + 1

// fun with enumerations
test = []; test.push(null); console.log(test)
test = []; test.push(undefined); console.log(test)

[More programming riddles]