问题描述:
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']