提取字符串的中间部分 - JavaScript

时间:2016-08-17 16:01:33

标签: javascript string algorithm

我正在尝试用JavaScript编写一个算法,但我得到的str.length不是函数...

function extractMiddle(str) {

    var position;
    var length;

    if(str.length() % 2 == 1) {
        position = str.length() / 2;
        length = 1;
    } else {
        position = str.length() / 2 - 1;
        length = 2;
    }

    result = str.substring(position, position + length)

}

extractMiddle("handbananna");

6 个答案:

答案 0 :(得分:4)

因为字符串长度不是函数,所以它是属性。

{{1}}

答案 1 :(得分:0)

这似乎解决了它!

function extractMiddle(str) {

var position;
var length;

if(str.length % 2 == 1) {
    position = str.length / 2;
    length = 1;
} else {
    position = str.length / 2 - 1;
    length = 2;
}

result = str.substring(position, position + length)
    console.log(result);

}

https://jsfiddle.net/sd4z711y/

答案 2 :(得分:0)

这是执行此操作的另一种方法:

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

答案 3 :(得分:-1)

str.length是一个属性。只是摆脱括号。例如:

if (str.length == 44) {

答案 4 :(得分:-1)

length是字符串的属性,而不是函数。这样做:

str.length % 2 === 1

此外,我建议使用===而不是==

答案 5 :(得分:-1)

由于length不是函数,所以没必要用()。