我需要 slice() 的解释
I need an explanation on slice()
我正在完成 javascript 练习,但无法创建一个检查字符串是否为回文的函数。供您参考,this 是给定的解决方案。
我了解 slice() 作为一种方法的作用,并且我在此处跟踪该函数,直到它检查第一个字母是否与最后一个字母匹配。
if (cstr[x] != cstr.slice(-1-x)[0])
切片方法的参数值是怎么回事?我期待参数对最后一个字母进行切片,我认为它确实如此,但我希望能提供一些帮助来指出如何做!
让我们弹出控制台看看吧!
> var s = 'abcde'
"abcde"
> s[0]
"a"
> s.slice(-1)
"e"
> s.slice(-1)[0]
"e"
> s[1]
"b"
> s.slice(-1 - 1)
"de"
> s.slice(-1 - 1)[0]
"d"
我希望你现在可以看到,使用负数 -n
进行切片将 return 字符串的最后 n
个字符,其中 n = 1
是最后一个字符。因此,要使回文测试正常工作,您需要在 -1 - x
("x-th from last" 字符)处进行切片。
arr.slice([begin[, end]])
参数
开始
从零开始提取的索引。作为负索引,begin 表示距序列末尾的偏移量。 slice(-2) 提取序列中的最后两个元素。如果省略 begin,则切片从索引 0 开始。
结束
结束提取的从零开始的索引。 slice 提取到但不包括结束。 slice(1,4) 提取第二个元素到第四个元素(索引为 1、2 和 3 的元素)。作为负索引,end 表示距序列末尾的偏移量。 slice(2,-1) 从序列中的倒数第二个元素中提取第三个元素。如果省略 end,则 slice 提取到序列的末尾 (arr.length).
描述
slice returns 原始数组元素的浅表副本。原始数组的元素被复制到返回的数组中,如下所示:
对于对象引用(而不是实际对象),slice 将对象引用复制到新数组中。原始数组和新数组都引用同一个对象。如果引用的对象发生更改,则更改对新数组和原始数组都是可见的。
对于字符串和数字(不是字符串和数字对象),slice 将字符串和数字复制到新数组中。更改一个数组中的字符串或数字不会影响另一个数组。
如果向任一数组添加新元素,则不会影响另一个数组。
我正在完成 javascript 练习,但无法创建一个检查字符串是否为回文的函数。供您参考,this 是给定的解决方案。
我了解 slice() 作为一种方法的作用,并且我在此处跟踪该函数,直到它检查第一个字母是否与最后一个字母匹配。
if (cstr[x] != cstr.slice(-1-x)[0])
切片方法的参数值是怎么回事?我期待参数对最后一个字母进行切片,我认为它确实如此,但我希望能提供一些帮助来指出如何做!
让我们弹出控制台看看吧!
> var s = 'abcde'
"abcde"
> s[0]
"a"
> s.slice(-1)
"e"
> s.slice(-1)[0]
"e"
> s[1]
"b"
> s.slice(-1 - 1)
"de"
> s.slice(-1 - 1)[0]
"d"
我希望你现在可以看到,使用负数 -n
进行切片将 return 字符串的最后 n
个字符,其中 n = 1
是最后一个字符。因此,要使回文测试正常工作,您需要在 -1 - x
("x-th from last" 字符)处进行切片。
arr.slice([begin[, end]])
参数
开始
从零开始提取的索引。作为负索引,begin 表示距序列末尾的偏移量。 slice(-2) 提取序列中的最后两个元素。如果省略 begin,则切片从索引 0 开始。
结束
结束提取的从零开始的索引。 slice 提取到但不包括结束。 slice(1,4) 提取第二个元素到第四个元素(索引为 1、2 和 3 的元素)。作为负索引,end 表示距序列末尾的偏移量。 slice(2,-1) 从序列中的倒数第二个元素中提取第三个元素。如果省略 end,则 slice 提取到序列的末尾 (arr.length).
描述
slice returns 原始数组元素的浅表副本。原始数组的元素被复制到返回的数组中,如下所示:
对于对象引用(而不是实际对象),slice 将对象引用复制到新数组中。原始数组和新数组都引用同一个对象。如果引用的对象发生更改,则更改对新数组和原始数组都是可见的。
对于字符串和数字(不是字符串和数字对象),slice 将字符串和数字复制到新数组中。更改一个数组中的字符串或数字不会影响另一个数组。
如果向任一数组添加新元素,则不会影响另一个数组。