从.slice方法存储切片字符

时间:2016-11-28 06:10:08

标签: javascript string slice

当我像这样使用切片方法时:

"Hello".slice(0,-1);

我得到的结果将是"地狱"。然后,如果我再次使用相同的代码再次执行,我将得到" Hel"。

有没有一种方法可以提取并存储切片中的实际字符变量,在这种情况下" H"或者在第二次运行" e",而不仅仅是字符串的其余部分?

1 个答案:

答案 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());
}