Javascript 以不同的大小拆分字符串

Javascript 以不同的大小拆分字符串,javascript,string,split,Javascript,String,Split,我有一根像这样的线: var l = [3, 3, 3, 1, 2, 5, 4, 1, 2, 1]; var a = ['Lor', 'em ', 'ips', 'u', 'm ', 'dolor', ' sit', 'a', 'me', 't']; var s='Lorem ipsum door sit amet' 我想要一个这样的数组: var l = [3, 3, 3, 1, 2, 5, 4, 1, 2, 1]; var a = ['Lor', 'em ', 'ips', 'u', 'm

我有一根像这样的线:

var l = [3, 3, 3, 1, 2, 5, 4, 1, 2, 1];
var a = ['Lor', 'em ', 'ips', 'u', 'm ', 'dolor', ' sit', 'a', 'me', 't'];
var s='Lorem ipsum door 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'];
细分的长度不同

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


我该怎么办?

这样就可以了。但你的问题令人困惑;最后一个元素的第三个长度为2,而不是1

var s='Lorem ipsum door sit amet';
变量a=['Lor','em','ips','u','m','dolor','sit','a','me','t'];
var splitAt=[3,3,3,1,2,5,4,2,2,1];
函数拆分长度(str、arr){
var-id=0;
var outputArr=[];
arr.forEach(函数(len){
outputArr.push(str.slice(id,id+len));
id+=len;
});
返回输出端;
}
日志(splitbylength(s,splitAt));

log(“如预期的那样?”,splitbylength(s,splitAt)==a)您可以映射单长度零件

它与上一个位置的闭合一起工作
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
var length=[3,3,3,1,2,5,4,1,2,1],
字符串='Lorem ipsum dolor sit amet',
结果=length.map((p=>i=>string.slice(p,p+=i))(0));

控制台日志(结果)从何处获取长度序列?@NinaScholz,例如,从数组中获取。我编辑我的主消息在数组
a
中忽略的
sit amet
之间有一个空格。