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);