[英]Remove characters from string and return new string with removed characters
我正在嘗試從字符串中刪除一些字符並返回刪除的字符。 這是我的代碼......
function removeFromString(string, start, charToRemove){ var newString = '' newString = string.slice(start, charToRemove); return newString } alert(removeFromString ('Hello', 0, 3)) //lo
我想出了如何返回剩余的字符,但我無法弄清楚如何返回被刪除的字符。
提前致謝!
您可以將字符串轉換為數組,使用splice
方法拆分未使用的項,然后將數組中的結果項連接到字符串。
var arr = Array.from('Hello'); var items = arr.splice(3, arr.length); var result = items.join(''); console.log(result);
您可以映射字符並刪除給定范圍內的字符。
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
我修改了你自己的代碼以返回剩余的字符:
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
string.slice(start, charToRemove)
將返回一個新的字符串值,該值是通過從索引start
到索引charToRemove
的變量string
的字符串值中獲取所有字符來創建的。
現在調用示例, string
變量中的字符串值為:
H e l l o
0 1 2 3 4
你給出的start
索引是0, charToRemove
是3,所以我們得到一個新的字符串值,它包含索引0,1和2的字符,即H
, e
和l
。
如果你想要從索引3開始的所有東西你需要給slice
方法一個3作為偏移,即
'Hello'.slice(3)
但是,我並不完全確定你的目標是什么。 如果要獲取字符串中的最后n
字符,可以給出像string.slice(-2)
這樣的負偏移量。
您可以使用substring來獲取要刪除的部分,並將其替換為空字符串。 這樣我們就不需要循環,也不需要將字符串轉換為數組。
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
只需讓你的函數返回這個:string.substr(0,start)+ string.substr(charToRemove + 1)
這是一個“multislice”函數,它在特定位置剪切字符串並返回一個切片數組。 例如, 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))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.