JavaScript基础知识----六道有趣的Js基础题以及解答

题目:


1.找出数字数组中最大的元素(使用Math.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.

  1. var a = [10,1,2,3,4,8,9];
    function max(a){
                            var len = a.length-1;
                            var maxnum=a[len];
                            while (len--) {
                     maxnum=Math.max(maxnum,a[len])
                            }
                            return maxnum;
                    }
                    alert(max(a));

     

另解:

  1. function getArrMax(){
                    return Math.max.apply(null,a);
                    }

     

2.  

  1. var getNumFun = [];
            function toFun(a){
               var len = a.length;
               while (len--) {
                          (function(i){
                      getNumFun[i] = function(){
                              alert(a[i]);
                      }
                          }
                          )(len);
                          
               }
            }
    /*        toFun(a);
            getNumFun[5]();          */

     

3.

var objarr = [
      {a:2,b:1},
      {d:5},
      {a:1,b:2,c:3} ];
function rule(o1,o2){
       var sizeObj = function(obj){
          var size=0;
          for(var i in obj) size++;
          return size;
       }
       return sizeObj(o1) - sizeObj(o2);
    }
/*    objarr.sort(rule);
    console.log(objarr[0]);        */

 

4.

  1. function Fib(n){
           if(n===1||n===2){return 1;}
           else return Fib(n-1)+Fib(n-2);
         }
    /*    console.log(Fib(10));   */

     

5.

  1. Number.prototype.plus = function(x){
         return this+x;
        }
        Number.prototype.minus = function(x){
         return this-x;
        }
    /*    console.log((5).plus(3).minus(6));  */


6.

  1. function add(num){
      var self = arguments.callee;
      num += ~~self;
      self.num = num;
      return self;
      }
      add.valueOf = add.toString = function(){return add.num};
    /* console.log(add(5)(8)); */

     

 

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。