了解JavaScript中的切片

时间:2018-08-03 13:59:46

标签: javascript string

考虑以下字符串:

const str = "I am a good boy"
  

在,索引7 = g   at,indedx 10 = d   但是,当我使用字符串的splice方法时,它接受两个参数,即开始索引,结束索引,所以当我使用

const result = str.slice(7, 10)
console.log(result)

我希望它返回good,但它只返回goo为什么会这样,即使在索引10处,也存在d?

根据W3学校

  

slice()提取字符串的一部分,并在中返回提取的部分   一个新的字符串。

     

该方法采用2个参数:起始索引(位置)和   结束索引(位置)。

3 个答案:

答案 0 :(得分:5)

the MDN documentation中,endIndex(第二个)参数是索引,在该索引之前将从源字符串中提取出来。

将结束索引放在所需内容的后面是很有用的,因为这样会使数学运算变得容易一些。如果要从位置i开始的三个字符,可以使用source.slice(i, i+3)

答案 1 :(得分:2)

就像范围在数学中的工作原理一样,有边界包含边界的边界,而边界不包括边界的边界,即范围可以是以下项之一,

  • 封闭范围-(1,10),即范围2-9,不包含索引1和10

  • 打开范围-[1,10],即范围1-10,包括1和10。

  • 半开-[1,10)或(1,10],即第一个范围从1开始但以9结尾,第二个范围从2开始并以10结尾。

因此,剪接函数采用[a,b)形式的半开范围,其中包括第一个但在下边界闭合,即不包括下边界。

答案 2 :(得分:0)

看起来像这样。如果您认为它们是字母开头的位置,那是很合情理的。

enter image description here