Javascript 如何根据每四个逗号将字符串拆分为一个数组?
因此,我试图根据逗号的数量将字符串拆分为数组,我该怎么做?说我的绳子是这样的Javascript 如何根据每四个逗号将字符串拆分为一个数组?,javascript,jquery,Javascript,Jquery,因此,我试图根据逗号的数量将字符串拆分为数组,我该怎么做?说我的绳子是这样的 var string = "abc, def, ghi, jkl, mno, pqr, stu, vwx, yza"; 我如何分割它,使其返回 var array = ["abc, def, ghi, jkl,", "mno, pqr, stu, vwx,", "yza"] 这可能吗 现在我使用的是var-array=string.split(',') 但这会根据每个逗号将字符串添加到数组中 任何帮助都将不胜感激
var string = "abc, def, ghi, jkl, mno, pqr, stu, vwx, yza";
我如何分割它,使其返回
var array = ["abc, def, ghi, jkl,", "mno, pqr, stu, vwx,", "yza"]
这可能吗
现在我使用的是var-array=string.split(',')代码>
但这会根据每个逗号将字符串添加到数组中
任何帮助都将不胜感激 我将使用.match
而不是拆分
-match(非逗号,后跟逗号或字符串末尾)4次:
var string=“abc、def、ghi、jkl、mno、pqr、stu、vwx、yza”;
const result=string.match(/(?:[^,]+(?:,|$){1,4}/g);
控制台日志(结果)
拆分位于,
的字符串。然后创建一个通用的chunk
函数,该函数将传递的数组拆分为使用指定的大小的块
const str=“abc、def、ghi、jkl、mno、pqr、stu、vwx、yza”,
splits=str.split(/,\s*/),
chunk=(arr,size)=>Array.from({length:Math.ceil(arr.length/size)},
(u,i)=>arr.slice(i*大小,(i+1)*大小))
log(JSON.stringify(chunk(splits,4)))
console.log(JSON.stringify(chunk(splits,3))
您也可以使用split和reduce来实现这一点:
let array = str.split(", ").reduce((prev, curr, i) => {
if(i%4 === 0){
prev.push([]);
}
prev[prev.length - 1].push(curr);
return prev;
}, [])
嘿,谢谢你的快速回复。我刚刚测试了它,并意识到一件事,只有第一个实例显示数组中的4个对象,之后它显示每个数组中的3个对象。哼,加油!它现在工作得很好!非常感谢您:按问题中的“RunCodeSnippet”-我看到每个匹配有4个子字符串(上一个匹配除外,可能有1、2或3个)哎呀,我的意思是[“abc.def.ghi,jki”,“mno,pqr,stu,vwx”,“aaa,aaa,aaa,aaa”],所以答案是正确的。让我编辑我的帖子。@symlink是的,+
是贪婪的。如果它是惰性的,使用+?
,它将重复尽可能少的次数,只需要尽可能多的次数来匹配模式。