前端面试常见问题——字符串反转

这道题呢,来源于一篇文章,《如何准备一次技术面试》,它以作为面试官的角度讲了一些技术面试的小技巧。
大家应该也都知道技术面试中对于基础知识的考察,总是从一些基本的问题,层层深入。
字符串反转就是一个面试的常见问题。这是我最初的解法,当然也是大部分人的解法:

//解法一
       function reverse(str){
           for(var i=0;i<str.length;i++){
               newstr=str.charAt(i)+newstr;
           }
           return newstr;
       }
       console.log(reverse(str));

这段代码并没有问题,但并不是一个好的答案。这个时候面试官大多会引导面试者去优化他,去完善他,或者能否提供更好的解决方案。如果能够在提供多种方案,并能够比较优劣的话,将会是一次比较好的面试。

那么还有哪些比较好的解法呢?

//解法二
        function reverse(str){
            if(str.length===1){
                return str
            }
            return str.slice(-1)+reverse(str.slice(0,-1));
        }
        console.log(reverse(str));
//解法三
 function reverse(str) {
            return str.split('').reduce((prev, next) => next + prev);
        }
        console.log(reverse(str));
//解法四
        function reverse(str) {
            return str
                .split('')
                .reverse()
                .join('')
        }
        console.log(reverse(str));

1、 数组、字符串的常用方法:
2、 For循环性能及如何优化:Javascript中for循环语句的几种写法总结对比
3、 递归函数主要注意的问题:递归实现的方法及注意事项
4、 函数式编程:函数式编程初探

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值