关于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?

蝴蝶刀刀
浏览 574回答 1
1回答

有只小跳蛙

因为索引号是从0开始算的。。。比如字符串length=2Math.ceil(str.length / 2 - 1) => Math.ceil(0) => 0 即从索引号0开始截取比如字符串length=3Math.ceil(str.length / 2 - 1) => Math.ceil(0.5) => 1 即从索引号1开始截取
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript