Javascript 根据字符数动态拆分数组

Javascript 根据字符数动态拆分数组,javascript,arrays,algorithm,sorting,split,Javascript,Arrays,Algorithm,Sorting,Split,我有这样一个数组: const testArray = [ 'blah', 'abc​testtt​​', 'atestc​', 'testttttt' ] 我想在字符串达到某个字符数后分割它,例如,让我们使用10个字符。另外,我希望输出可以交换自己,以便能够在10个字符内使用。如果这对您来说没有意义,请参阅下面的预期输出。请假设数组中的每个项不超过10个字符,仅用于示例目的 因此,一旦testArray达到10个字符,我希望下一个项目位于一个新变量下,也许?不确定这是不是最好的方法 也许是这

我有这样一个数组:

const testArray = [ 'blah', 'abc​testtt​​', 'atestc​', 'testttttt' ]
我想在字符串达到某个字符数后分割它,例如,让我们使用10个字符。另外,我希望输出可以交换自己,以便能够在10个字符内使用。如果这对您来说没有意义,请参阅下面的预期输出。请假设数组中的每个项不超过10个字符,仅用于示例目的

因此,一旦
testArray
达到10个字符,我希望下一个项目位于一个新变量下,也许?不确定这是不是最好的方法

也许是这样的?同样,这可能是非常低效的,如果是这样,请随时使用另一种方法

const testArray = [ 'blah', 'abctesttt​​', 'atestc', 'testttttt' ]
if ((testArray.join('\n')).length) >= 10 {
    /* split the string into parts and store it under a variable maybe?
    console.log((the_splitted_testArray).join('\n')); */

}
预期输出:
首先,由于无法在运行时凭空创建新变量,因此可能需要使用“父”数组,该数组包含最大长度为10的实际字符串

对于分组,您可能需要自己设计算法。我对算法的第一个想法如下。可能不是最好、最有效的方式(因为“高效”的描述取决于您个人的优先事项),但您可以自己进行优化:)

  • 浏览
    $testArray[]
    ,将所有字符串排序到一个新的二维数组中:
    $stringLength[$messageswithsamelelength[]
    。像
    array(1=>array('.','a'),2=>array('hi','##',…),…)
  • 现在,始终尝试将尽可能多的字符串组合在一起。从一个最长的字符串开始,计算剩余的空间,然后得到一个最适合它的字符串。如果没有合适的,则创建一个新组

  • 始终尽量使用空格

    如果某个值的长度大于10怎么办?@Hassaniam请假设不会出现这种情况,我将为此添加一个编辑。谢谢你指出“//而不是使用”代码>测试< /代码>它会使用“<代码>测试<代码> >以避免达到10个字符限制“除了<代码> \代码>你有没有考虑其他特定字符作为空白?”每个`将计为1个字符。您希望在测试时将连续的
    `
    删除为1个字符。折叠空白也是同样的方法。“``test```它将使用“
    test
    ”也许
    strlen()
    ?”D PHP有一个很棒的文档,你知道吗;)谷歌永远是你的朋友吗?但我正在使用JavaScript并在Node.js环境中实现它。哎呀,真为我感到羞耻xD,但也有:Google^^^查找DI真的不难,没问题,我是在开玩笑;)
    "blah
    atestc" //instead of using "abctesttt" it would use "atestc" as it's the next element in the array and it also avoids reaching the 10 character limit, if adding "atestc" caused the character limit to go over 10, I would like it to check the next element and so on
    
    "abctesttt" // it can't add the remaining "testttttt" since that would cause the character limit to be reached
    
    "testttttt"