首页 > 代码库 > 一些JS题目的解法

一些JS题目的解法

题目是从http://www.cnblogs.com/TomXu/archive/2012/02/10/2342098.html看到的。

答案参考了文章的评论,也有自己的一些改进。

1.找出数字数组中最大的元素(使用Mach.max函数)

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

2.转化一个数字数组为function数组(每个function都弹出相应的数字)

[1,2,3].map(function(x){return function(){return x;};});

3.给object数组进行排序(排序条件是每个元素对象的属性个数)

[{a:0,b:1},{a:0}].sort(function(a, b){return Object.keys(a).length - Object.keys(b).length;});

4.利用JavaScript打印出Fibonacci数(不使用全局变量)

(function(x){return x <= 1 ? 1 : arguments.callee(x-1) + arguments.callee(x-2);})(5);

5.实现如下语法的功能:var a = (5).plus(3).minus(6); //2

Number.prototype.plus = function(x){return this + x;};Number.prototype.minus = function(x){return this - x;};

6.实现如下语法的功能:var a = add(2)(3)(4); //9

function add(x){
  add.sum = add.sum ? add.sum += x : x;
  return add;
}
add.toString = add.valueOf = function(){
  return this.sum;
}