将字符串按最大长度分割成块,但不要在单词中间断开。

3
我有一个字符串,我想将其拆分为数组。
每个索引需要具有最大字母数,比如15个字符。每个点都需要在单词结束时,没有最大字符的重叠(在进入下一个单词之前会停在28个字符处)。
我过去能够使用正则表达式来做类似的事情,但我正在尝试让这个在线平台不喜欢正则表达式的工作。
示例字符串: 嗨这是一个示例字符串,我想将其拆分为数组!
所需结果@ 15 char max:
1. 嗨这是一个 2. 示例字符串 3. 我想 4. 喜欢打破 5. 成一 6. 数组!
1个回答

6

考虑到没有超过最大限制的单词

function splitString (n,str){
    let arr = str?.split(' ');
    let result=[]
    let subStr=arr[0]
    for(let i = 1; i < arr.length; i++){
        let word = arr[i]
        if(subStr.length + word.length + 1 <= n){
            subStr = subStr + ' ' + word
        }
        else{
            result.push(subStr);
            subStr = word
        }
    }
    if(subStr.length){result.push(subStr)}
    return result
}
console.log(splitString(15,'Hi this is a sample string that I would like to break down into an array!'))


1
这就是它。谢谢 <3 - Flipwon

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接