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

Javascript片段:是否可以使用2个参数来选择字符串的最后一个字符?,javascript,slice,Javascript,Slice,问题 如果我想使用slice获取字符串的最后一个字符,我会这样做 lastCharacter = theString.slice(-1); 是否可以使用开始和结束数字参数选择最后一个字符?像这样 var start = -1; var end = -0; // nonsensical, I realize lastCharacter = theString.slice(start, end); 答案 没有特殊的-0数字 我问的原因 我问这个问题的原因是,我希望为这两个参数使用变量,这两个参数

问题

如果我想使用
slice
获取字符串的最后一个字符,我会这样做

lastCharacter = theString.slice(-1);
是否可以使用
开始
结束
数字参数选择最后一个字符?像这样

var start = -1;
var end = -0; // nonsensical, I realize
lastCharacter = theString.slice(start, end);
答案

没有特殊的-0数字

我问的原因

我问这个问题的原因是,我希望为这两个参数使用变量,这两个参数在我构建一个新变量时会在每个循环中递减,该变量将与字符串相反。在atomrc给出答案之前,我并不认为应该简单地使用
字符串.length
并从最后一个字符返回,而不是像下面的示例中那样使用-1从最后一个字符开始(这需要for循环的第一次迭代使用if语句)

这是codeschools arcade javascript测试的第三个问题“检查字符串是否是回文”

我的解决办法是

函数检查回文(inputString){
var characterTotal=inputString.length;
var InputStringSified=inputString+“”;
var切片机;
var sliceStart=-1;
var sliceEnd=-1;
var=“”;
对于(i=characterTotal;i>0;i--){
如果(i==characterTotal){//第一次运行
slicedLetter=inputstringstringized.slice(sliceStart);
sliceStart=sliceStart-1;
向后=向后+切片机;
}否则{
slicedLetter=inputstringstringized.slice(sliceStart,sliceEnd);
sliceStart=sliceStart-1;
sliceEnd=sliceEnd-1;
向后=向后+切片机;
}
}
如果(inputString==向后){
警报(“真”);
}否则{
警报(“假”);
}
}
检查回文('abaaba')好了:)


您可以提到,第二个参数在本例中是不必要的,因此它可以是:
theString.slice(theString.length-1)
lastCharacter=Array.from(theString.reduceRight)(c=>c)
。我不确定作者想要实现什么,但他要求提供一个带有
start
end
参数的版本(这样一切都是明确的,你不需要知道
slice
的内部结构就可以理解它的功能…我想)谢谢,你让我意识到我不必用负数倒转,因为我已经知道了长度。
theString.slice(theString.length - 1, theString.length)