1、找出数字数组中最大的元素(使用Match.max函数)
1 var a=[123,23432,345,3,34]; 2 console.log(Math.max.apply(null,a));
2、转化一个数字数组为function数组(每个function都弹出相应的数字)
1 var a=[123,23432,345,3,34]; 2 a=a.map(function(value){ 3 return function(){ 4 alert(value); 5 }; 6 }); 7 console.log(a[3]());
3、给object数组进行排序(排序条件是每个元素对象的属性个数)
var arr=[ {a:1,b:2,c:3}, {a:1,b:2,c:3,d:4,e:5}, {a:1,b:2}, {a:1,b:2,c:3,d:4} ]; Object.prototype.propLength=( Object.prototype.hasOwnProperty(‘_count_‘)? function (){ return this._count_; //FF } : function(){ var p,count=0; for(p in this){ if(this.hasOwnProperty(p)){ count++; } } return count; } ); function compare(obj1,obj2){ return obj1.propLength()-obj2.propLength(); } console.log(arr.sort(compare));
4、利用JavaScript打印出Fibonacci数(不使用全局变量)
1 function fibo(n){ 2 var self=arguments.callee; 3 if(n<2){ 4 return n; 5 } 6 return self(n-1)+self(n-2); 7 } 8 console.log(fibo(6));
5、实现如下语法的功能:var a = (5).plus(3).minus(6); //2
1 Number.prototype.plus=function (a){ 2 return this.valueOf()+a; 3 }; 4 Number.prototype.minus=function (a){ 5 return this.valueOf()-a; 6 }; 7 var a = (5).plus(3).minus(6); 8 console.log(a);
6、实现如下语法的功能:var a = add(2)(3)(4); //9
答案来自园友Gaubee在深入理解JavaScript系列(20):《你真懂JavaScript吗?》答案详解的回答。
1 function add(num){ 2 var self=arguments.callee; 3 num+=~~self; 4 self.num=num; 5 return self; 6 } 7 //valueOf是给运行和控制台用,toString是给alert用 8 add.valueOf=add.toString=function(){return add.num;}; 9 var a = add(2)(3)(4); 10 console.log(a);
欢迎批评指正。
时间: 2024-10-24 20:32:26