Ürün varyant kombinasyonu
Benim yapmak istediğim şu
const varyant = [
{"varyantName" : 'Small/Mavi', 'id' : '1-4'},
{"varyantName" : 'Small/Sarı', 'id' : '1-6'},
{"varyantName" : 'Small/Yeşil', 'id' : '1-3'},
{"varyantName" : 'Medium/Mavi', 'id' : '2-4'},
{"varyantName" : 'Medium/Sarı', 'id' : '2-6'},
{"varyantName" : 'Medium/Yeşil', 'id' : '2-3'},
{"varyantName" : 'X-Large/Mavi', 'id' : '7-4'},
{"varyantName" : 'X-Large/Sarı', 'id' : '7-6'},
{"varyantName" : 'X-Large/Yeşil', 'id' : '7-3'},
]
//Ben aslında sadece isimleri yaptım uzatmamak için o kodları yazmadım
ama bana id kombinasyonu da lazım
kombinasyonları ayrı ayrı yaparsam hangi isimler hangi idlerin olacak bilemedim.
2-3 saattir uğraşıyorum.
[
'Small/Mavi',
'Small/Sarı',
'Small/Yeşil',
'Medium/Mavi',
'Medium/Sarı',
'Medium/Yeşil',
'Large/Mavi',
'Large/Sarı',
'Large/Yeşil',
]
İtiraf ediyorum öğlenden beri uğraşıyorum :)
Anladığım kadarıyla size görselde paylaştığınız gibi bir veri geliyor:
response = {
Beden: [
{attributeId: "1", atrName: "Small"},
{attributeId: "2", atrName: "Medium"},
{attributeId: "7", atrName: "X-Large"},
],
Renk: [
{attributeId: "4", atrName: "Mavi"},
{attributeId: "6", atrName: "Sarı"},
{attributeId: "3", atrName: "Yeşil"},
]
}
Siz bunu kendi objenizde birleştirmek istiyorsunuz. İç içe for kullanarak şu şekilde yapabilirsiniz:
const varyant = [];
for(let bedenIndex=0; bedenIndex < response.Beden.length; bedenIndex++) {
for(let renkIndex=0; renkIndex < response.Renk.length; renkIndex++) {
const bedenName = response.Beden[bedenIndex].atrName;
const bedenId = response.Beden[bedenIndex].attributeId;
const renkName = response.Renk[renkIndex].atrName;
const renkId = response.Renk[renkIndex].attributeId;
varyant.push({
varyantName: bedenName + "/" + renkName,
id: bedenId + "-" + renkId
});
}
}