v2.5.2
Giriş yap

Ürün varyant kombinasyonu

kartal
505 defa görüntülendi

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

Cevap yaz
Cevaplar (1)
ebykdrms
733 gün önce

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