从 .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
当我像这样使用切片方法时:
"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