yisainan / web-interview

我是齐丶先丶森,收集整理全网面试题及面试技巧,旨在帮助前端工程师们找到一份好工作!更多详见公众号「前端面试秘籍」
MIT License
2.61k stars 507 forks source link

[编程题] 8. 设计一道 JavaScript 的 range 算法如下: #556

Open qiilee opened 4 years ago

qiilee commented 4 years ago

range(1, 10, 3) 返回 [1, 4, 7, 10]; range('A', 'F', 2) 返回 ['A', 'C', 'E'] 请使用 JavaScript 语言实现该功能(可以使用 ES6)

答案:

function range() {
    var args = [].slice.call(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') {
            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;
}
liujian-git commented 4 years ago

function range(){ var args=[].slice.call(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'){ 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;

}

qiilee commented 4 years ago

@liujian-git 谢谢 已采纳!