Javascript 如何按数组中的键值拆分包含对象的数组

Javascript 如何按数组中的键值拆分包含对象的数组,javascript,arrays,Javascript,Arrays,JavaScript。拥有一个对象数组 0:{mask: "202 203, 287 376, 412 162, 381 121", add: 1} 1:{mask: "108 511, 247 291, 151 186, 97 180", add: 1} 2:{mask: "147 202, 289 234, 268 113", add: 0} 3:{mask: "79 225, 318 374, 443 212, 359 118", add: 1} 4:{mask: "116 253, 32

JavaScript。拥有一个对象数组

0:{mask: "202 203, 287 376, 412 162, 381 121", add: 1}
1:{mask: "108 511, 247 291, 151 186, 97 180", add: 1}
2:{mask: "147 202, 289 234, 268 113", add: 0}
3:{mask: "79 225, 318 374, 443 212, 359 118", add: 1}
4:{mask: "116 253, 327 351, 377 198, 361 171", add: 1}
5:{mask: "232 237, 288 566, 406 481, 458 240, 421 188", add: 0}
6:{mask: "222 391, 361 298, 347 170", add: 0}
需要将它们拆分为具有
add=1
和少量
add=0
的数组,在下一个
add=1
之前,保留如下顺序

ar1 = [
  0: {mask: "202 203, 287 376, 412 162, 381 121", add: 1}
]
ar2 = [
  0: {mask: "108 511, 247 291, 151 186, 97 180", add: 1}
  1: {mask: "147 202, 289 234, 268 113", add: 0}
]
ar3 = [
  0: {mask: "79 225, 318 374, 443 212, 359 118", add: 1}
]
ar4 = [
  0: {mask: "116 253, 327 351, 377 198, 361 171", add: 1}
  1: {mask: "232 237, 288 566, 406 481, 458 240, 421 188", add: 0}
  2: {mask: "222 391, 361 298, 347 170", add: 0}
]

它可以是对象的数组(里面有数组)不重要,主要的是带有
add=1
的组元素和所有下一个元素,这些元素有
add=0
Reduce可以帮助你,尽管这是一个技巧。如果您不喜欢reduce,可以采用for循环

const arr=[{mask:“20220328737641216238121Add:1},
{掩码:“108 511、247 291、151 186、97 180”,添加:1},
{掩码:“147 202、289 234、268 113”,添加:0},
{掩码:“7922531837444321359118”,添加:1},
{掩码:“116 253、327 351、377 198、361 171”,添加:1},
{掩码:“232 237、288 566、406 481、458 240、421 188”,添加:0},
{掩码:“222 391、361 298、347 170”,加上:0}];
常量结果=[];
arr.reduce((a,b)=>{
如果(a==null | | b.add==1)
结果:推送([]);
结果[result.length-1]。推送(b);
返回b
},空)

控制台日志(结果)我建议您在lodash中使用uuChunk方法