一些Js题目

        1.找出数字数组中最大的元素(使用Match.max函数)
       
         // var arr = [1, 10, 20, 80, 60];
        // console.log(Math.max.apply(this, arrs));
        //obj.call(thisObj, arg1, arg2, ...);
        // obj.apply(thisObj, [arg1, arg2, ...]);
        // 两者作用一致,都是把obj(即this)绑定到thisObj,这时候thisObj具备了obj的属性和方法。或者说thisObj『继承』了obj的属性和方法。唯一区别是apply接受的是数组参数,call接受的是连续参数。

        //2.转化一个数字数组为function数组(每个function都弹出相应的数字)
                // var arr = [1, 10, 20, 80, 60];
        // var funArr = [];
        // for (var i = 0, len = arr.length; i < len ; i++) {
        //  var fun = (function (i) {
        //      alert(i);
        //  }(arr[i]));
        //  funArr.push(fun);
        // }
        // for (var i = 0, len = funArr.length; i < len ; i++) {
        //  funArr[i];
        // }
        //第二题可以用map简便些
         // function toFunctionArr(numArr) {
        //  return numArr.map(function (element) {
        //      alert(element);
        //  });
        // }
        // toFunctionArr(arr);


       3.给object数组进行排序(排序条件是每个元素对象的属性个数)
        
        // var objArr = [
        //  { a: 1, b: 2, c: 3 },
        //  { a: 1 },
        //  { a: 1, b: 2 },
        //  { a: 1, b: 2, c: 3, d: 4 },
        //  { a: 1, b: 2, c: 3, d: 4, e: 5 }
        // ]
        // console.log(objSort(objArr));

        // function objSort(objArr) {
        //  var arrLen = [], //每个对象的长度
        //      orderArr = [],//最后输出的对象数组
        //      arrSoft = []; //排序好的对象长度
        //  for (var i = 0, len = objArr.length; i < len; i++) {
        //      arrLen.push(getLen(objArr[i]));
        //  }
        //  arrSoft = arrLen.slice(0).sort(); //sort会修改原数组,用slice返回一个新数组

        //  for (var i = 0, len = arrSoft.length; i < len; i++) {
        //      for (var j = 0, jLen = arrLen.length; j < jLen; j++) {
        //          if ( !arrLen[j].isUsed && arrSoft[i] == arrLen[j]) {
        //              orderArr.push(objArr[j]);
        //              arrLen[j].isUsed = true;
        //              break;
        //          }
        //      }
        //  }
        //  return orderArr;
        //  function getLen(obj) {
        //      var num = 0;
        //      for (var key in obj) {
        //          !obj.hasOwnProperty(key) || num++;
        //      }
        //      return num;
        //  }
        // }

        4.不使用全局变量,输出斐波那契数
       
         // getFibonacci();
        // function getFibonacci() {
        //  var a1 = 1;
        //  var a2 = 1;
        //  var n = 0;
        //  console.log(a1 + " " + a2);
        //  while (n < 1000) {
        //      n = a1 + a2;
        //      console.log(" " + n);
        //      a1 = a2;
        //      a2 = n;
        //  }
        // }
        //敌我差距过大 = =
        // function outputFibonacci(n){
// return n<2?n:outputFibonacci(n-1)+outputFibonacci(n-2)
// }
        // console.log(outputFibonacci(20));

            

            5.//实现如下语法的功能:var a = (5).plus(3).minus(6); //2
// Number.prototype.plus = function (num) {
// return this + num;
// }
// Number.prototype.minus = function (num) {
// return this - num;
// }
// var a = (5).plus(3).minus(6);
// console.log(a);


猜你喜欢

转载自blog.csdn.net/qq_39643110/article/details/80368038