从 .slice 方法存储切片字符

Storing The Sliced Character from .slice Method

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

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

我得到的结果将是 "Hell"。然后,如果我 运行 使用相同的代码再次通过它,我将得到 "Hel".

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

您可以在原始字符串上使用第二个 .slice()

例如,其中 "Hello".slice(0,-1); returns 除最后一个字符外, "Hello".slice(-1) returns 仅最后一个字符。

var input = "Hello";
var removed = input.slice(-1);       // "o"
var remaining = input.slice(0, -1);  // "Hell"

我认为没有比这更通用的解决方案了,因为 .slice() 还允许您提取字符串的 middle,在这种情况下您会需要 两次 次额外调用才能删除两个部分。

演示:

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() or .pop() 删除开头的字符或分别结束:

var input = "Hello";
var inArr = input.split("");
while (inArr.length > 0) {
  console.log(inArr.pop());
}

这可能不是执行此操作的最有效方法,但您可以使用 .split 将字符串转换为数组,然后使用 .splice 删除某些元素(字母)并将它们存储为变量。最后,您使用 .join

将已删除字母的变量变回字符串

let name = 'David'
let arrayname = name.split('')
let chosenLetters = arrayname.splice(0,2)
let finalLetters = chosenLetters.join('')
console.log(finalLetters) //should output Da

对于拆分和合并,我建议您将参数保留为 ('')。对于 .splice,您可以在 js 文档中找到如何 select 特定字母。在我的示例中,我说的是“从索引 0 开始并剪切前 2 个元素”。 Splice 有许多其他方式来 select 索引,所以我建议您阅读文档。

一行代码可以归纳为:

  let name = 'David'
  let finalLetters = name.split('').splice(0,2).join('')
  console.log(finalLetters) //should output Da