我需要对slice()的解释

时间:2015-02-20 04:23:46

标签: javascript function slice palindrome

我正在完成javascript练习,并且一直在创建一个检查字符串是否为回文的函数。供您参考,this是给定的解决方案。

我理解slice()作为一个方法做什么,我在这里跟着函数,直到它检查第一个字母是否与最后一个字母匹配。

  

if(cstr [x]!= cstr.slice(-1-x)[0])

切片方法的参数值是怎么回事?我期待参数切出最后一个字母,我认为它确实如此,但我会感谢一些帮助,指出如何!

2 个答案:

答案 0 :(得分:2)

让我们弹出控制台,看看吧!

> 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进行切片将返回字符串的最后n个字符,其中n = 1是最后一个字符。因此,为了使回文测试正常工作,您需要切换-1 - x(“最后一个”字符)。

答案 1 :(得分:0)

  

arr.slice([begin[, end]])

参数

<强>开始

开始提取的从零开始的索引。作为负索引,begin表示从序列末尾开始的偏移量。 slice(-2)提取序列中的最后两个元素。如果省略begin,则切片从索引0开始。

<强>端

基于零的索引,用于结束提取。切片提取但不包括结束。 slice(1,4)提取第二个元素直到第四个元素(元素索引为1,2和3)。作为负指数,end表示距序列末尾的偏移量。 slice(2,-1)通过序列中倒数第二个元素提取第三个元素。如果省略end,则将切片提取到序列的末尾(arr.length)。

描述

slice返回原始数组中元素的浅表副本。原始数组的元素将复制到返回的数组中,如下所示:

对于对象引用(而不是实际对象),slice将对象引用复制到新数组中。原始数组和新数组都引用相同的对象。如果引用的对象发生更改,则更改对新的和原始数组都可见。

对于字符串和数字(​​不是String和Number对象),slice将字符串和数字复制到新数组中。对一个数组中的字符串或数字的更改不会影响另一个数组。

如果将新元素添加到任一阵列,则另一个阵列不受影响。