web前端面试题附答案037-如何实现字符串的反转?有一大半人没有看见过字符串的这个函数

如题:有字符串“abcdefg”,请对其进行反转,最后变为“gfedcba”

 1、字符串可以用类似数组的下表获取元素吗?

        答案是可以的,完全可以通过类似数组的下标,通过索引获取某个元素值,可以通过将字符串倒叙遍历,再利用新字符串进行拼接。

        反转,必定要调换位置,哪怕是diff算法,也不免各种遍历。

<script>
            var str = "abcdefg";
            var newStr = '';
            for (let i=str.length-1;i>=0;i--) {
                newStr += str[i];
            }
            console.log(newStr); // gfedcba
</script>

2、是不是可以快速想到数组有个反转reverse呢?

        这道题很明显,利用数组的reverse特别合适,但缺点是需要再多引入一个数组,虽然好用,但不够优秀。

        所以在面试中,可以算是一种方法,而且可以举一反三的联想到其他方面的解决方案,但顺带着提出一些优点和缺点,这将是一件非常卷的事情。

<script>
            var str = "abcdefg";
            var arr = str.split('');
            var newStr = arr.reverse();
            var resultStr = newStr.join('');
            console.log(resultStr); // gfedcba
</script>

3、还有个charAt方法,谁用过?

        charAt方法是字符串的一个内置方法,既然是内置的,我们一般都认为是最优解,甚至比通过数组方式,靠传入下标的要好那么一些。

<script>
            var str = "abcdefg";
            var newStr = '';
            for (let i=0;i<str.length;i++) {
                newStr += str.charAt(i);
            }
</script>

4、charAt用一用

        不要疑惑用这个干嘛,平时也用不到,新浪面试题里类似的考点就非常多。考的就是字符串,数组,Math这些对象,某个函数,入参五花八门,然后在纸上问你返回值,纸啥时候能运行代码了,我看你们还往纸上写面试题。

        

         猜想一下这几个题的答案吧,c a  ''

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

经海路大白狗

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值