题目是从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;}
一些JS题目的解法
时间: 2024-10-11 11:31:19