我正在尝试从字符串中删除一些字符并返回删除的字符。这是我的代码...
function removeFromString(string, start, charToRemove){
var newString = ''
newString = string.slice(start, charToRemove);
return newString
}
alert(removeFromString ('Hello', 0, 3)) //lo
我想出了如何返回其余字符,但我想不出如何返回被删除的字符。
提前谢谢!
答案 0 :(得分:2)
您可以将字符串转换为数组,使用splice
方法拆分未使用的项,然后将数组中的结果项连接到字符串。
var arr = Array.from('Hello');
var items = arr.splice(3, arr.length);
var result = items.join('');
console.log(result);
答案 1 :(得分:2)
您可以映射角色并删除给定范围内的角色。
function removeFromString(string, start, charToRemove) {
return Array.from(
string,
(c, i) => i >= start && i < start + charToRemove ? '': c
).join('');
}
console.log(removeFromString ('Hello', 0, 3)) //lo
答案 2 :(得分:2)
我修改了自己的代码以返回其余字符:
function removeFromString(string, start, charToRemove){
var newString = '';
newString = string.slice(0, start) + string.slice(start+charToRemove);
return newString;
}
console.log(removeFromString ('Hello', 0, 3)) //lo
答案 3 :(得分:1)
string.slice(start, charToRemove)
将返回一个新的字符串值,该字符串值是通过将变量string
内的字符串值中的所有字符从索引start
到索引charToRemove
<创建的/ p>
现在通过您的示例调用,string
变量内的字符串值为:
H e l l o
0 1 2 3 4
,您提供的start
索引为0,而charToRemove
为3,因此我们得到了一个新的字符串值,其中包含索引0、1和2处的字符,即H
,e
和l
。
如果您希望所有内容都从索引3开始,则需要给3作为slice
方法的偏移量,即
'Hello'.slice(3)
不过,我不确定您的目标到底是什么。如果要获取字符串中的最后n
个字符,可以使用string.slice(-2)
之类的负偏移量。
答案 4 :(得分:1)
您可以使用子字符串来获取要删除的部分,并将其替换为空字符串。 这样,我们就不需要循环,也不需要将字符串转换为数组。
function removeFromString(str, start, charToRemove){
let end = start+charToRemove
let strToBeRemoved = str.substring(start, end)
return str.replace(strToBeRemoved, "")
}
console.log(removeFromString ('Hello', 0, 3)) //lo
console.log(removeFromString ('Hello', 2, 2)) //Heo
console.log(removeFromString ('Hello', 1, 3)) //Ho
答案 5 :(得分:0)
只需让您的函数返回以下内容即可:string.substr(0,start)+ string.substr(charToRemove + 1)
答案 6 :(得分:0)
这是一个“多切片”函数,该函数在特定位置切割字符串并返回切片数组。例如,segment(hello, 0, 3)
返回[hel, lo]
。
function segment(str, ...positions) {
let last = 0, res = []
for (let pos of positions) {
res.push(str.slice(last, pos))
last = pos
}
if (last < str.length)
res.push(str.slice(last))
return res
}
console.log(segment('Hello', 0, 3))