javascript - 关于js算法题

查看:79
本文介绍了javascript - 关于js算法题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

var p1 = getMiddle("test"); //es
    var p2 = getMiddle("testing"); //t
    var p3 = getMiddle("middle"); //dd
    var p4 = getMiddle("A"); //A

        function getMiddle(str){
            return str.substr(Math.ceil(str.length / 2 - 1) , str.length % 2 == 0 ? 2 : 1);
        }

        console.log(p1);
        console.log(p2);
        console.log(p3);
        console.log(p4);

如果是字符串是偶数的话,返回中间2个字母,如果奇数的话返回中间一个字母,
问题:这里的str.length / 2 为什么要-1?

解决方案

因为索引号是从0开始算的。。。

比如字符串length=2
Math.ceil(str.length / 2 - 1) => Math.ceil(0) => 0 即从索引号0开始截取
比如字符串length=3
Math.ceil(str.length / 2 - 1) => Math.ceil(0.5) => 1 即从索引号1开始截取

这篇关于javascript - 关于js算法题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆