簡體   English   中英

如何通過鍵值將對象與數組拆分

[英]How to split array with objects by key-values in it

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 = 1之前add = 1幾個add = 0 ,並保留這樣的順序

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,可以采用for循環

 const arr = [{mask: "202 203, 287 376, 412 162, 381 121", add: 1}, {mask: "108 511, 247 291, 151 186, 97 180", add: 1}, {mask: "147 202, 289 234, 268 113", add: 0}, {mask: "79 225, 318 374, 443 212, 359 118", add: 1}, {mask: "116 253, 327 351, 377 198, 361 171", add: 1}, {mask: "232 237, 288 566, 406 481, 458 240, 421 188", add: 0}, {mask: "222 391, 361 298, 347 170", add: 0}]; const result = []; arr.reduce((a,b) => { if (a === null || b.add == 1) result.push([]); result[result.length-1].push(b); return b },null) console.log(result); 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM