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']