当我像这样使用切片方法时:
"Hello".slice(0,-1);
我得到的结果将是"地狱"。然后,如果我再次使用相同的代码再次执行,我将得到" Hel"。
有没有一种方法可以提取并存储切片中的实际字符变量,在这种情况下" H"或者在第二次运行" e",而不仅仅是字符串的其余部分?
答案 0 :(得分:0)
您可以在原始字符串上使用第二个.slice()
。
例如,"Hello".slice(0,-1);
返回除最后一个字符以外的所有字符,"Hello".slice(-1)
仅返回最后一个字符。
var input = "Hello";
var removed = input.slice(-1); // "o"
var remaining = input.slice(0, -1); // "Hell"
我认为没有更通用的解决方案,因为.slice()
还允许您提取字符串的中间,在这种情况下,您需要 2 额外调用以移除两个部分。
演示:
var input = "Hello";
var allRemoved = [];
var removed;
while (input != "") {
allRemoved.push(removed = input.slice(-1));
input = input.slice(0, -1);
console.log("'" + removed + "' removed, leaving '" + input + "'");
}
console.log("Removed: " + allRemoved.join(", "));
或者,如果您只关心一次删除一个字符,则可能会忘记.slice()
,而是将字符串转换为数组并使用.shift()
或.pop()
删除分别在开头或结尾的字符:
var input = "Hello";
var inArr = input.split("");
while (inArr.length > 0) {
console.log(inArr.pop());
}