汤姆大叔博客的6道题目

  1. 找出数字数组中最大的元素(使用Match.max函数)
  2. 转化一个数字数组为function数组(每个function都弹出相应的数字)
  3. 给object数组进行排序(排序条件是每个元素对象的属性个数)
  4. 利用JavaScript打印出Fibonacci数(不使用全局变量)
  5. 实现如下语法的功能:var a = (5).plus(3).minus(6); //2
  6. 实现如下语法的功能:var a = add(2)(3)(4); //9

 

1,
Math.max.apply(Math, [1, 2, 3]) 2,

var a = [1, 2, 3, 4]; for (var i = 0, len = a.length; i < len; ++i) { a[i] = function(m) { return function() { alert(m); } }(i) } 3,

var createCompare = function() { return function(obj1, obj2) { return getObjLen(obj1) - getObjLen(obj2); } } function getObjLen(obj) { var count = 0; for (var key in obj) { if (obj.hasOwnProperty(key)) { count++; } } return count; } 4,

var createRec = function(callBack, cache) { cache = cache || {}; var recur = function(n) { if (!(n in cache)) { cache[n] = callBack(recur, n); } return cache[n]; } return recur; } var fib = createRec(function(cal, n) { return cal(n - 1) + cal(n - 2); }, {'0' : 1, '1' : 1}); 5if (!Number.prototype.plus) { Number.prototype.plus = function(n) { return this + n; } } if (!Number.prototype.minus) { Number.prototype.minus = function(n) { return this - n; } } 6,

var add = function(n) { function temp(m) { n += m; return temp; } temp.valueOf = function() { return n; } return temp; }

 

posted @ 2013-12-23 13:15  迷途小哈  阅读(156)  评论(0)    收藏  举报