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
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)