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
之间有一个空格。