关于前端:编程篇005设计一道JavaScript的-range-算法如下

42次阅读

共计 635 个字符,预计需要花费 2 分钟才能阅读完成。

range(1, 10, 3) 返回 [1, 4, 7, 10];
range(‘A’, ‘F’, 2) 返回 [‘A’, ‘C’, ‘E’];
请应用 JavaScript 语言实现该性能(能够应用 ES6)

参考答案:

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