Wednesday, July 30, 2014

Strangest things i found in JavaScript


  1. [] + []; // ""
  2. {} + {}; // NaN
  3. [] + {}; // "[object Object]"
  4. {} + []; // 0
  5. [] == []; // false
  6. [] < []; // false
  7. [] > []; // false
  8. [] <= []; // true
  9. [] >= []; //true
  10. Math.min() < Math.max(); // false
  11. foo = [0];
  12. !foo; // false
  13. foo == foo; // true
  14. foo == !foo; // true
  15. [['0']] == false; // true
  16. [['0']] == true; // false
  17. typeof NaN; // "number"
  18. NaN == true; // false
  19. NaN == false; // false
  20. NaN != true; // true
  21. NaN != false; // true
  22. NaN == NaN; // false
  23. NaN == !NaN; // false
  24. !NaN; // true
  25. NaN != NaN; // true
  26. 'x' == true; // true
  27. 'x' == false; // false
  28. '0' == true; // false
  29. '0' == false; // true

Friday, July 25, 2014

Couple of interview questions

Write a function that takes an integer (i) and prints out the first 'i' rows of Pascal's Triangle (eg. i =5).

            line = 5;
            var pascalDepth = parseInt(line, 10); //The input integer is provided on a single line as a text value, so this handles it.
            var testTriangle = pascalTriangle(pascalDepth);
            var output = [];
            maxlength = testTriangle.length;
            var html = "<table>"
            for(var i = 0; i < maxlength; i++){
                html += "<tr>";
                html += "<td>";
                html += testTriangle[i];
                html += "</td>";
                html += "</tr>";
            }
            html+= "</table>";

            document.write(html);

            function pascalTriangle(totalLines, triangle) {
                if (typeof triangle === 'undefined') {
                    triangle = [];
                }

                if (triangle.length === totalLines) {
                    return triangle;
                }

                if (triangle.length > 0) {
                    var triangleLine = [];
                    for (var i = 0; i < triangle.length; i++) {
                        if (typeof triangle[triangle.length - 1][i - 1] === 'undefined') {
                            triangleLine.push(1);
                        } else {
                            triangleLine.push((triangle[triangle.length - 1][i - 1] + triangle[triangle.length - 1][i]));
                        }
                    }
                    triangleLine.push(1);
                    triangle.push(triangleLine);
                } else {
                    triangle.push([1]);
                }
                return pascalTriangle(totalLines, triangle);
            }
-----------------------------------------------------------------------------------------

Write a function that prints out a breakdown of an integer into a sum of numbers that have just one non-zero digit.  

eg., given 43018 it should print 40000 + 3000 + 10 + 8.

            var arr = [];
            var i =1;               
            var a = 40118;
            var input = 40118;
            while(a > 0)
            {
            if(a%(Math.pow(10,i)) > 0)
              arr.push(a%(Math.pow(10,i)));       
             
              a = a-a%(Math.pow(10,i++));
            }
            arr.sort(function(a,b){ return b-a;});
            document.write(input +" = " +arr.join(" + "));

Thursday, July 17, 2014

Creating a URL shortner

Here is the actual code i have created using php its very simple and easy to use.

Here is the live Working url : http://shorturl-kartheekgj.rhcloud.com/


Please find the code at:   https://github.com/kartheekgj/shorturl