gpt4 book ai didi

JavaScript:编写一个函数来编辑一个范围内的字符串

转载 作者:行者123 更新时间:2023-12-05 09:05:43 26 4
gpt4 key购买 nike

我想编写一个函数来编辑某个范围内的字符串,并可能交换该范围内的另一段字符串(如果提供)。范围是这样工作的——开始索引是包含的,结束索引是排他的(比如 slice),如果范围大于字符串的长度,那么它会选择到最后。如果起始索引超出字符串范围,则整个操作将被忽略。例如,

const string = 'HELLO'
const startIdx = 1
const endIdx = 3

editText(string, startIdx, endIdx) // should return 'HLO'
const string = 'HELLO'
const startIdx = 1
const endIdx = 3
const textToAdd = 'y there'

editText(string, startIdx, endIdx) // 'HLO'
const string = 'HELLO'
const startIdx = 2
const endIdx = 6
const textToAdd = 'y there'
editText(string, startIdx, endIdx,textToAdd) // 'HEy there'

这是我的尝试:

function editText(string, startIdx, endIdx, textToAdd) {
if(startIdx < 0 || startIdx >= string.length) return string
const strArr = string.split('')
if(textToAdd) {
strArr.splice(startIdx, endIdx - startIdx, textToAdd)
} else {
strArr.splice(startIdx, endIdx - startIdx)
}

return strArr.join('')
}

它工作正常,但我想知道是否有更有效或更优雅的方法来做到这一点?

最佳答案

你可以只使用string.replace

像这样尝试:

function editText(string, startIdx, endIdx, textToAdd=null) {
if(startIdx < 0 || startIdx >= string.length) return string
return string.replace(string.substring(startIdx, endIdx), textToAdd || "")
}

关于JavaScript:编写一个函数来编辑一个范围内的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66860405/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com