Diziyi typescript/javascript kullanarak gruplara ayırma

29.07.2024 00:00:00 Tarihinde Soruldu

Bu bende var:

    products = [
       {
         'id': 1
         'name: 'test'
       },
       {
         'id': 2
         'name: 'test'
       },
       {
         'id': 3
         'name: 'test'
       }
       ... etc, etc
    ]

Bunu şu şekilde yeniden yapılandırmam gerekiyor:

    products = [
       row1: [
        {
         'id': 1
         'name: 'test'
        },
        {
         'id': 2
         'name: 'test'
        },
        {
         'id': 3
         'name: 'test'
        },
        {
         'id': 4
         'name: 'test'
        }
       ]
    row2: [
       {
         'id': 5
         'name: 'test'
        },
        {
         'id': 6
         'name: 'test'
        },
        {
         'id': 7
         'name: 'test'
        },
        {
         'id': 8
         'name: 'test'
        }
       ]
       row3: [.. etc, etc
    ]

Zor olan kısım, her gruptaki nesne sayısının bir değişken kullanılarak ayarlanmasıdır (bu örnekte değişken 4 olacaktır).

Bunu Typescript/Javascript kullanarak nasıl başarabilirim? Beni çileden çıkarıyor!

Teşekkürler

Diziyi typescript/javascript kullanarak gruplara ayırma

1 Cevap

Uygur
29.07.2024 00:00:00 Tarihinde Cevaplandı

Ürün dizinizde .reduce() metodunu şu şekilde çalıştırabilirsiniz:

 

var products = [
   { 'id': 1, name: 'test' },
   { 'id': 2, name: 'test' },
   { 'id': 3, name: 'test' },
   { 'id': 4, name: 'test' },
   { 'id': 5, name: 'test'  },
   { 'id': 6, name: 'test' }
]

var numberOfObjects = 4 // <-- decides number of objects in each group

var groupedProducts = products.reduce((acc, elem, index) => {
  var rowNum = Math.floor(index/numberOfObjects) + 1
  acc[`row${rowNum}`] = acc[`row${rowNum}`] || []
  acc[`row${rowNum}`].push(elem)
  return acc
}, {})

console.log(groupedProducts)

Cevap Yaz