考虑以下字符串:
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个参数:起始索引(位置)和 结束索引(位置)。
答案 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)