编程篇(005)-设计一道JavaScript的 range 算法如下

2022-05-12 21:19:00 浏览数 (1)

问题描述:

range(1, 10, 3) 返回 [1, 4, 7, 10];

range('A', 'F', 2) 返回 ['A', 'C', 'E'];

请使用 JavaScript 语言实现该功能(可以使用 ES6)

参考答案:

代码语言:javascript复制
function range() {
    var args = [].slice.call(arguments); // 相当于Array.slice.call(arguments),目的是将arguments对象的数组提出来转化为数组,arguments本身并不是数组而是对象
    var str = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z'];
    var result = [];
    if (args.length > 2) {
        if (typeof args[0] === 'number') { // 如果是number型数据
            for (var i = args[0]; i <= args[1]; i = i   args[2]) {
                result.push(i);
            }
        } else {
            for (var i = str.indexOf(args[0]); i <= str.indexOf(args[1]); i = i   args[2]) {
                result.push(str[i]);
            }
        }
    }
    return result;
}

range(1, 10, 3); //  [1, 4, 7, 10]
// range('A', 'F', 2); // ['A', 'C', 'E']

0 人点赞