Javascript Slice:是否可以使用2个参数来选择字符串的最后一个字符?

时间:2017-05-26 10:34:08

标签: javascript slice

问题

如果我想使用>>> from pip.baseparser import ConfigOptionParser >>> ConfigOptionParser(name="foo").get_config_files() ['C:\\ProgramData\\pip\\pip.ini', 'C:\\Users\\salimfadhley\\pip\\pip.ini', 'C:\\Users\\salimfadhley\\AppData\\Roaming\\pip\\pip.ini'] >>> 获取字符串的最后一个字符,我会这样做..

slice

是否可以选择同时包含lastCharacter = theString.slice(-1); start数字参数的最后一个字符?像这样......

end

答案

没有特殊的-0位

我提出的理由

我问的原因是我正在寻找两个参数的变量,这些变量会在每个循环上递减,因为我构建了一个与var start = -1; var end = -0; // nonsensical, I realize lastCharacter = theString.slice(start, end); 相反的新变量。在atomrc的回答之前,我没想到只使用theString并从最后一个字符开始工作而不是使用-1来开始最后一个字符,就像我在下面的例子中所做的那样(这需要for循环的第一次迭代的if语句。

这是关于codechools街机javascript测试的第三个问题'检查字符串是否是回文'

我的解决方案是..



theString.length




我必须为第一次迭代创建一个if语句。有了atomrc的答案,我现在看到我没有必要使用负数作为切片,因为我知道字符串的长度。

凭借新知识,我的新解决方案有点短......



function checkPalindrome(inputString) {
  var characterTotal = inputString.length;
  var inputStringStringified = inputString + '';
  var slicedLetter;
  var sliceStart = -1;
  var sliceEnd = -1;
  var backwards = '';
  for (i = characterTotal; i > 0; i--) {
    if (i === characterTotal) { // first run
      slicedLetter = inputStringStringified.slice(sliceStart);
      sliceStart = sliceStart - 1;
      backwards = backwards + slicedLetter;
    } else {
      slicedLetter = inputStringStringified.slice(sliceStart, sliceEnd);
      sliceStart = sliceStart - 1;
      sliceEnd = sliceEnd - 1;
      backwards = backwards + slicedLetter;
    }
  }
  if (inputString === backwards) {
    alert('true');
  } else {
    alert('false');
  }
}
checkPalindrome('abaaba');




..但仍然是一个可怕的解决方案。解决之后,我看到了其他人想出来的东西,有些是简单的衬里。

1 个答案:

答案 0 :(得分:0)

你去:)

theString.slice(theString.length - 1, theString.length)