拆分不同大小的字符串

bet*_*eth 2 javascript string split

我有一个像这样的字符串:

var s = 'Lorem ipsum dolor sit amet';

我想要一个像这样的数组:

var l = [3, 3, 3, 1, 2, 5, 4, 1, 2, 1];
var a = ['Lor', 'em ', 'ips', 'u', 'm ', 'dolor', ' sit', 'a', 'me', 't'];
Run Code Online (Sandbox Code Playgroud)

细分的长度不同.

我知道先验我希望第一个元素的长度为3(Lor),第二个为3(em),第三个为3(ips),第四个为1(u),第五个为2(m),第六个为5(dolor),第七个为4 (sit),第八个1(a),第九个2(me)和第十个1(t).

我能怎么做?

Nin*_*olz 6

您可以映射单个长度的部分.

它适用于最后一个位置的闭包 p

(p => i => string.slice(p, p += i))(0)
(p =>                             )(0) // call function with zero as p and return cb
      i => string.slice(p, p += i)     // callback for map
Run Code Online (Sandbox Code Playgroud)

var lengths = [3, 3, 3, 1, 2, 5, 4, 1, 2, 1],
    string = 'Lorem ipsum dolor sit amet',
    result = lengths.map((p => i => string.slice(p, p += i))(0));
    
console.log(result);
Run Code Online (Sandbox Code Playgroud)