订阅汇聚素材网Feed

6道考验你javascript基础能力的题目

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.求数组最大值
function getMax(arr) {
    if (arr.length === 1) {
        return arr[0];
    } else if (arr.length === 2) {
        return Math.max(arr[0], arr[1]);
    }

    var subArr = arr.slice(1, arr.length);
    var second = arguments.callee(subArr);
    return Math.max(arr[0], second);
}

// 另类解法
function getMax2(arr) {
    return Math.max.apply(null, arr);
}
console.log(getMax([1, 2, 3, 3, 3, 2, 5, 8, 898]));

// 2.转化一个数字数组为function数组
function convert(array) {
    var temp = [];
    for (var i = 0, len = array.length; i < len; i++) {
        temp[i] = (function (num) {
            return function () {
                alert(num);
            }
        })(array[i]);
    }
    return temp;
}
var fArray = convert([1, 2, 3, 4, 555]);
fArray[4]();

// 3.给object数组进行排序
function sortObj(array) {
    var temp = [], key, objLen = 0;
    for (var i = 0, len = array.length; i < len; i++) {
        for (key in array[i]) {
            objLen++;
        }
        array[i]['HWSLObjLen'] = objLen;
        objLen = 0;
    }
    array.sort(function (a, b) {
        if (a['HWSLObjLen'] > b['HWSLObjLen']) {
            return 1;
        } else if (a['HWSLObjLen'] < b['HWSLObjLen']) {
            return -1
        } else {
            return 0;
        }
    });
    //console.log(array);
}
sortObj([{'a': 1, 'b': 2}, {'a': 1, 'b': 2, 'c': 3, 'd': 4}, {'a': 1, 'b': 2, 'c': 3}, {'a': 1, 'b': 2, 'c': 100}]);

// 4.利用JavaScript打印出Fibonacci数
function fibo(n) {
    if (n === 1 || n === 2) {
        return 1;
    }
    return arguments.callee(n - 1) + arguments.callee(n - 2);
}
//console.log(fibo(5));

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

// 6.实现如下语法的功能:var a = add(2)(3)(4); //9 @Gray Zhang
function add(x) {
    var result = x;
    var fn = function (x) {
        result += x;
        return fn;
    };
    fn.toString = fn.valueOf = function () {
        return result;
    };
    return fn;
}
console.log(add(2)(3)(3));
5 人Likes
  

文章转载请注明:6道考验你javascript基础能力的题目-汇聚素材网

本文固定链接:http://www.webhj.com/hj-2405.html  +复制链接

6道考验你javascript基础能力的题目:等您坐沙发呢!

发表评论

*

*

3 + 4

快捷键:Ctrl+Enter
0全站搜索 1 设计 2 素材 3 教材 4 WEB 5 电子书籍