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是的,
+
是贪婪的。如果它是惰性的,使用
+?
,它将重复尽可能少的次数,只需要尽可能多的次数来匹配模式。